如何在不同的页面中访问phonegap数据库?

时间:2012-08-07 12:41:40

标签: jquery sqlite cordova

我使用数据库创建了一个数据库并在listview中显示,但我想使用相同的 数据库在另外两个页面中,那么如何在多个页面中访问同一个数据库? 请仔细阅读我的代码..

 var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000); //will create database Mydatabase or open it
    function onDeviceReady(){
        db.transaction(populateDB, errorCB, successCB);
    }
    function populateDB(tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS ALLWORDS (id INTEGER PRIMARY KEY AUTOINCREMENT, Word TEXT NOT NULL, Type_Of_Word TEXT NOT NULL)');

    }
    function errorCB(err) {
        alert("error in database : "+err);
    }

    function successCB() {
        alert("successs!");
        db.transaction(queryDB,errorCB);
    }

    function queryDB(tx){
        tx.executeSql('SELECT * FROM ALLWORDS',[],querySuccess,errorCB);

1 个答案:

答案 0 :(得分:1)

重要的一点是:

 var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000); 

如果数据库不存在,它将创建它,如果存在,它将返回与该数据库的连接。

所以你可以将这一行放在一个单独的js文件中,让我们将其称为global.js,然后将其包含在你需要的每个页面中,之后包含的所有脚本都将知道该变量,例如:。

<强> global.js

...
var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000); //should be defined in the script itself, not inside of a function.
...

<强>的script.js

//in the HTML this is included after the global.js so it knows the db variable
function onDeviceReady(){
        db.transaction(populateDB, errorCB, successCB);
    }

<强> HTML

//global should always come first
<script src="global.js" type="text/javascript"></script>
<script src="script.js" type="text/javascript"></script>

这样,你只需要定义一次。当然,在全局中,您应该放置许多文件将要使用的所有其他函数/变量。