Как реализовать базу данных SQLite в Phonegap?
Я использую кросс-платформенное приложение для Android, iOS и BlackBerry. Я использую PhoneGap для создания версий на родном языке для каждой платформы. Я хочу знать, как создавать, получать доступ и искать базу данных SQLite.
Я прочитал в документации, что его можно создать через Javascript файл, но я хочу знать, где разместить этот файл и как ссылаться на него в коде.
Ответы
Ответ 1
Взгляните на 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});
Ответ 2
Документация 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
Ответ 4
**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);
});