2013-10-10 108 views
5

Phonegap使用數據庫。我需要知道數據庫是否已經創建。我試圖避免整個創建表和插入行功能,如果數據庫已經存在。Phonegap - 如果數據庫已經存在

var db = window.openDatabase(「Database」,「1.0」,「FiltersResults」,50000000);

這打開/創建我的數據庫,好的,但我怎麼知道這個數據庫是否已經存在?

回答

-1

檢查文檔:http://docs.phonegap.com/en/3.0.0/cordova_storage_storage.md.html#Storage

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")'); 
} 

function errorCB(err) { 
    alert("Error processing SQL: "+err.code); 
} 

function successCB() { 
    alert("success!"); 
} 

var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000); 
db.transaction(populateDB, errorCB, successCB); 
+0

我已經做了,但我需要知道的是如果DATABASE存在,而不是表格。如果數據庫已經存在,那意味着代碼塊已經運行了,爲什麼又要這樣呢? –

+1

您每頁加載打開一次數據庫,然後對其進行處理。無論如何你不需要每次運行window.openDatabase多一次,對吧?所以不需要檢查它是否存在。 –

+2

@SamThompson:如果我轉到另一個頁面並返回到該頁面或終止應用程序並再次運行該應用程序,那麼如何檢索已創建的數據庫。就是那個問題。 –

0

var db = window.openDatabase("myDB", "1.0", "FiltersResults", 50000000);檢查,如果你有一個數據庫,稱爲myDB如果存在,它會打開它。如果不是,則創建一個並打開它。所以,如果你看到它創建多個數據庫,下面可能是兩方面的原因,我能想到的

  • 您有更多的運行URL一個窗口,只是退出瀏覽器完全打開一個寡婦與URL
  • 是一個在Safari 5.1.2中引入的知識UI相關錯誤,在更高版本中得到修復。
相關問題