我正在为Android,iOS和BlackBerry实施跨平台应用。我正在使用PhoneGap为每个平台生成本地语言版本。我想知道如何创建,访问和搜索SQLite数据库。
我在文档中读到它可以通过Javascript文件创建,但我想知道放置该文件的位置以及如何在代码中引用它。
答案 0 :(得分:13)
看看Lawnchair(http://brian.io/lawnchair/),它非常易于使用,开箱即用可能会完成你所需要的大部分内容(包括搜索),它是跨浏览器,经过战斗测试并且很好地降级通过使用适配器。 Blackberry有一个适配器,还有一个支持查询的插件。以下是使用适用于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});
答案 1 :(得分: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
答案 2 :(得分:3)
答案 3 :(得分: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);
});