3

我正在创建一个 Sqlite 数据库,并且我有很多页面要从中访问数据库。

如果我要创建一个新表,是否必须再次执行整个数据库?

如果我有一个像(删除,插入,...)这样的语句。我可以从代码中的任何位置访问数据库并在需要时调用“db.executesql()”吗?

4

1 回答 1

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上面一样。

于 2012-07-08T14:04:36.603 回答