Как реализовать базу данных SQLite в Phonegap? - PullRequest
11 голосов
/ 11 июля 2011

Я реализую кроссплатформенное приложение для Android, iOS и BlackBerry. Я использую PhoneGap для создания версий на родном языке для каждой платформы. Я хочу знать, как создавать, обращаться к базе данных SQLite и выполнять ее поиск.

Я прочитал в документации, что он может быть создан с помощью файла Javascript, но я хочу знать, где разместить этот файл и как ссылаться на него в коде.

Ответы [ 4 ]

13 голосов
/ 04 октября 2011

Взгляните на Lawnchair (http://brian.io/lawnchair/),, он довольно прост в использовании и из коробки, вероятно, делает большую часть того, что вам нужно (в том числе поиск), это кросс-браузер, тестирование в бою и хорошо ухудшается благодаряиспользование адаптеров. Существует адаптер для Blackberry и плагин, который поддерживает запросы. Вот краткий пример использования адаптера webkit, который хорош для Android и iPhone, чтобы показать, насколько он прост.

<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});
12 голосов
/ 11 июля 2011

Документация PhoneGap по хранилищу здесь довольно явная и включает в себя пример кода. API хранилища смоделирован на основе API Javascript, разработанного под HTML5, используемого в Opera и Webkit. Вот соответствующая страница:

Оригинальная ссылка 2011: http://docs.phonegap.com/phonegap_storage_storage.md.html

2017 обновление: теперь все устарели, но посмотрите это: http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html

3 голосов
/ 11 июля 2011
0 голосов
/ 21 августа 2014
 **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);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...