2011-07-11 22 views
11

Estoy implementando una aplicación multiplataforma para Android, iOS y BlackBerry. Estoy usando PhoneGap para producir versiones en el idioma nativo para cada plataforma. Quiero saber cómo crear, acceder y buscar una base de datos SQLite.¿Cómo implementar una base de datos SQLite en Phonegap?

He leído en la documentación que se puede crear a través de un archivo Javascript, pero quiero saber dónde colocar ese archivo y cómo hacer referencia a él en el código.

Respuesta

13

Tome un vistazo a Lawnchair (http://brian.io/lawnchair/), es bastante fácil de usar y viene de la caja, probablemente hace la mayor parte de lo que necesita (incluida la búsqueda), es un navegador cruzado, batalla t ested y se degrada agradablemente con el uso de adaptadores. Hay un adaptador para Blackberry y un complemento que admite consultas. Aquí hay un ejemplo rápido usando el adaptador webkit, que es bueno para Android y iPhone, para mostrar lo simple que es.

<script type="text/javascript" src="Lawnchair.js" charset="utf-8"></script> 
<script type="text/javascript" src="webkit-sqlite.js" charset="utf-8"></script> 

// Open local DB connection 
var lawnchair = new Lawnchair({table:'mytable', adaptor:'webkit'}, function(){ 
    // Lawnchair setup! 
}); 

// Getting some data out of the lawnchair database 
lawnchair.get('my_data_key', function(obj) { 
    if (obj !== undefined) { 
     lastSyncDate = obj.lastSync; 
     dataList = obj.dataList; 
    } 
}); 

// Saving to the database 
lawnchair.save({key:'my_data_key', lastSync: currentTime, dataList: someData}); 
+0

Lawnchair es bastante bueno! –

+0

¿Puedo usar Lawanchair para la plataforma Windows? –

12

La documentación de PhoneGap sobre el almacenamiento es bastante explícita aquí e incluye algunos códigos de ejemplo. La API de almacenamiento se basa en la API de Javascript desarrollada en HTML5 utilizada en Opera y Webkit. Aquí está la página correspondiente:

original 2011 link: http://docs.phonegap.com/phonegap_storage_storage.md.html

2017 actualización: ahora todos fuera de fecha, pero ver esto: http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html

+0

enlace ya no funciona –

+0

@designedbyscott Este post es de seis años de edad, por lo que no es del todo sorprendente (y se refiere a una versión mucho más temprana de PhoneGap, que ha cambiado mucho). – Ben

+0

Bien consciente. Solo lo marque, ya que sigue siendo una publicación destacada. –

0
**html** 

<input id="show" type="button" value="Show"> 

**js** 

function globalError(tx, error) 
    { 
    alert("Error: " + error.message); 
    } 

var db = window.openDatabase('TabOrder', '', 'Bar Tab Orders', 2500000); 
db.transaction(function(tx) { 
tx.executeSql('DROP TABLE IF EXISTS SubmiteData;', null, null, globalError); 
tx.executeSql('CREATE TABLE IF NOT EXISTS SubmiteData (SubmiteDataId integer 
primary key, UserId text, AuthNo number, LocId number,ProdId number, 
CardId number, OrgLat text, OrgLng text, OrgTime text)', 
      null, 
      function() 
      { 
      SubmiteData("USER1",12345678,23434, 21212, 220232, 
      "9", "45", "23/06/2014"); 

      }, 
      globalError); 
    }); 

function SubmiteData(UserId, AuthNo, LocId,ProdId, CardId, OrgLat, OrgLng, OrgTime){ 
db.transaction(function(tx){ 
tx.executeSql('INSERT INTO SubmiteData(UserId, AuthNo, LocId, ProdId, CardId, 
OrgLat, OrgLng, OrgTime) VALUES (?,?,?,?,?,?,?,?)', [UserId, AuthNo, LocId, 
ProdId, CardId, OrgLat, OrgLng, OrgTime], 
      null, 
      globalError 
      ); 
    }); 
} 


function read(UserId, AuthNo, LocId,ProdId, CardId, OrgLat, OrgLng, OrgTime){ 

db.transaction(function(tx) { 
tx.executeSql('SELECT * FROM SubmiteData', 
     [], 
     function(tx, results) 
     { 
      for (var i=0; i<results.rows.length; i++) 
      { 
       var row=results.rows.item(i); 
       // alert("Id: " + row['UserId']); 
       var stringout = "LocId: " + row['LocId'] + "\n"; 
       alert(stringout); 
      } 
     },     
     globalError 
     ); 
    }); 
}; 

$(function() 
{ 
    $('#show').click(read); 
}); 
Cuestiones relacionadas