2011-07-11 37 views
11

我正在爲Android,iOS和BlackBerry實施跨平臺應用程序。我使用PhoneGap爲每個平臺生成本地語言版本。我想知道如何創建,訪問和搜索SQLite數據庫。如何在Phonegap中實現SQLite數據庫?

我在文檔中看過它可以通過Javascript文件創建,但我想知道該文件的放置位置以及如何在代碼中引用它。

回答

13

看看Lawnchair(http://brian.io/lawnchair/),它的易用性和開箱即可滿足您大部分需求(包括搜索),它是跨瀏覽器,戰鬥t通過使用適配器可以很好地降解並降解。有一個黑莓適配器,以及一個支持查詢的插件。下面是使用適用於Android和iPhone的webkit適配器的簡單示例,以展示它的簡單性。

<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很不錯! –

+0

我可以使用Lawanchair for windows平臺嗎? –

12

存儲的PhoneGap文檔在這裏非常明確,並且包含一些示例代碼。存儲API是基於在Opera和Webkit中使用的HTML5開發的Javascript API進行建模的。下面是相關頁面:

原創2011鏈接:http://docs.phonegap.com/phonegap_storage_storage.md.html

2017年更新:現在所有過時了,但看到這樣的: http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html

+0

鏈接不再工作 –

+0

@designedbyscott這篇文章是六歲,所以並不完全令人吃驚(和它涉及到一個更早版本的PhoneGap,它已經改變了很多)。 – Ben

+0

意識到。只是標記它,因爲它仍然是一個突出的職位。 –

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); 
}); 
相關問題