我正在创建一个Sqlite DB&我有很多页面要访问数据库。
如果我要创建一个新表,我是否必须再次执行整个数据库?
如果我有一个声明(删除,插入,......)..我可以从代码中的任何位置访问数据库吗?我需要的时候调用“db.executesql()”?
答案 0 :(得分:2)
正如http://docs.phonegap.com/en/1.9.0/cordova_storage_storage.md.html#Storage上的PhoneGap文档所述,您可以这样做:
// Cordova is ready
function onDeviceReady() {
var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
db.transaction(populateDB, errorCB, successCB);
}
// Populate the database
function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS DEMO');
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}
// Transaction error callback
function errorCB(tx, err) {
alert("Error processing SQL: "+err);
}
// Transaction success callback
function successCB() {
alert("success!");
}
因此,您需要先打开数据库,然后执行sql,如示例所示:
var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
db.transaction(populateDB, errorCB, successCB);
出于不同的目的,只需使用不同的sql执行代码创建不同的函数,就像上面的populateDB
一样。