2012-07-08 69 views
3

我正在创建一个Sqlite数据库&我有很多页面,我想访问数据库。我是否必须在第一批sqlite数据库创建所有表?

如果我有一个我想创建的新表,我必须再次执行整个数据库吗?

如果我有一个像(删除,插入,...)的声明我可以从代码&任何地方访问数据库调用“db.executesql()”,每当我需要它?

+0

如果您问是否可以将新表添加到已填充的数据库中,那么您可以。 – 2012-07-08 10:57:11

+0

我可以从另一个页面做到这一点吗? – 2012-07-08 11:07:26

回答

2

随着PhoneGap的公司在http://docs.phonegap.com/en/1.9.0/cordova_storage_storage.md.html#Storage文件说,你能做到这样:

// 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一样。

相关问题