2012-08-06 33 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

相关问题