2012-08-06 34 views
3

如何在手機存儲數據庫中創建兩個或更多表格?它適用於一個表,但如果您嘗試創建另一個表,則返回錯誤處理SQL:1; (在手機存儲數據庫中創建2個或更多表格

var db = window.openDatabase("Database", "1.0", "Order database", 1000000); 
    document.addEventListener("deviceready", onDeviceReady, false); 


function onDeviceReady() { 
    db.transaction(populateDB, errorCB, successCB); 
} 




function populateDB(tx) { 

    tx.executeSql('DROP TABLE IF EXISTS ORDER'); 
    tx.executeSql('CREATE TABLE IF NOT EXISTS ORDER (id INTEGER PRIMARY KEY, status)'); 
    tx.executeSql('INSERT INTO ORDER (id, status) VALUES (1, "new")'); 
    tx.executeSql('INSERT INTO ORDER (id, status) VALUES (2, "done")'); 
    tx.executeSql('INSERT INTO ORDER (id, status) VALUES (3, "new")'); 
    tx.executeSql('INSERT INTO ORDER (id, status) VALUES (4, "undone")'); 


    tx.executeSql('DROP TABLE IF EXISTS CLIENT'); 
    tx.executeSql('CREATE TABLE IF NOT EXISTS CLIENT (id INTEGER PRIMARY KEY, name, addr, mail, phone)'); 
    tx.executeSql('INSERT INTO CLIENT (id, name, addr, mail, phone) VALUES (1, "Kentavr", "Kiev", "[email protected]", "044-454-34-34")'); 
    tx.executeSql('INSERT INTO CLIENT (id, name, addr, mail, phone) VALUES (2, "ООО New Step ", "Kiev", "[email protected]", "044-433-222-24")'); 
    tx.executeSql('INSERT INTO CLIENT (id, name, addr, mail, phone) VALUES (3, "NEXT", "Lvov", "[email protected]", "033-1-3434-24")'); 
    tx.executeSql('INSERT INTO CLIENT (id, name, addr, mail, phone) VALUES (4, "Briz", "Lvov", "[email protected]", "033-1-1111-24")'); 
    tx.executeSql('INSERT INTO CLIENT (id, name, addr, mail, phone) VALUES (5, "Brand", "Lvov", "[email protected]", "033-1-1001-24")'); 




} 


function queryDB(tx) { 
     tx.executeSql('SELECT * FROM CLIENT WHERE addr="Lvov" ', [], querySuccess, errorCB); 
} 

回答

2

不能創建表ORDER,因爲它是SQL命令的一部分:)重新命名錶,您PROGRAMM會工作。

1
Please try like this... 

    var sql1 = 'CREATE TABLE IF NOT EXISTS ORDER (id INTEGER PRIMARY KEY, status)'; 
    tx.executeSql(sql1,[], function (tx, results) { 
     var test = new Array(); 
     test[0]='INSERT INTO ORDER (id, status) VALUES (1, "new")'; 
     test[1]='INSERT INTO ORDER (id, status) VALUES (2, "done")'; 
     test[2]='INSERT INTO ORDER (id, status) VALUES (3, "new")';                 
     for(i in test) { 
      tx.executeSql(test[i]); 
     } 
    }); 

var sql2 = 'CREATE TABLE IF NOT EXISTS CLIENT (id INTEGER PRIMARY KEY, name, addr, mail, phone)'; 
    tx.executeSql(sql2,[], function (tx, results) { 
     var test2 = new Array(); 
     test2[0]='INSERT INTO CLIENT (id, name, addr, mail, phone) VALUES (1, "Kentavr", "Kiev", "[email protected]", "044-454-34-34")'; 
     test2[1]='INSERT INTO CLIENT (id, name, addr, mail, phone) VALUES (1, "Kentavr", "Kiev", "[email protected]", "044-454-34-34")'; 
     test2[2]='INSERT INTO CLIENT (id, name, addr, mail, phone) VALUES (1, "Kentavr", "Kiev", "[email protected]", "044-454-34-34")';               
     for(i in test2) { 
      tx.executeSql(test2[i]);  
     } 
    }); 
+2

我的愚蠢的錯誤是我已經使用保留字'訂單'。這真的很愚蠢。我感覺不好。:C – MasterMind 2012-08-06 14:32:23

+0

我愚蠢的錯誤是我已經使用了保留字'Order'。這真的看起來很愚蠢。我感覺不好。:C – MasterMind 2012-08-06 14:36:49

+0

ohh ..是的,我也錯過了。有一點要知道最好的使用方法是使用回調函數。 – JDev 2012-08-07 05:28:07

相關問題