2015-05-04 6 views
2
db = window.openDatabase("javascript.db", "1.0", "My app", 2 * 1024 * 1024); 
    db.transaction(function(tx){ 
     tx.executeSql("CREATE TABLE topic (topic_id TEXT PRIMARY KEY NOT NULL, topic_name TEXT UNIQUE NOT NULL, 'topic description' TEXT)"); 
     tx.executeSql("INSERT INTO 'topic' VALUES('IV','Interview','This quiz contains questions asked during most interviews.')"); 
     tx.executeSql("INSERT INTO 'topic' VALUES('AN','Angularjs','Questions relating to Angularjs')"); 
     tx.executeSql("INSERT INTO 'topic' VALUES('JQ','Jquery','Questions relating to Jquery')"); 
     tx.executeSql("INSERT INTO 'topic' VALUES('XT','Extra','Extra questions.')"); 
     tx.executeSql("INSERT INTO 'topic' VALUES('XP','Expert','This is the fourth stage.')"); 
     tx.executeSql("INSERT INTO 'topic' VALUES('AD','Advance','This is the third stage.')"); 
     tx.executeSql("INSERT INTO 'topic' VALUES('IM','Intermediate','This is the second stage.')"); 
     tx.executeSql("INSERT INTO 'topic' VALUES('BG','Beginner','You should start here.')"); 
     tx.executeSql("CREATE TABLE question (question_id INTEGER PRIMARY KEY, question_code TEXT UNIQUE, question TEXT NOT NULL, option1 TEXT NOT NULL, option2 TEXT NOT NULL, option3 TEXT, option4 TEXT, hint TEXT)"); 
     tx.executeSql("INSERT INTO 'question' VALUES(1,'BG0101','quetion quetion quetion quetion quetion quetion quetion1','option1','option2','option3','1000','hint1')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(2,'BG0102','quetion quetion quetion quetion quetion quetion quetion2','option1','option2','option3','0100','hint2')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(3,'BG0103','quetion quetion quetion quetion quetion quetion quetion3','option1','option2','option3','0010','hint3')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(4,'BG0104','quetion quetion quetion quetion quetion quetion quetion4','option1','option2','option3','0001','hint4')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(5,'BG0105','quetion quetion quetion quetion quetion quetion quetion5','option1','option2','option3','1100','hint5')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(6,'BG0106','quetion quetion quetion quetion quetion quetion quetion6','option1','option2','option3','0110','hint6')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(7,'BG0107','quetion quetion quetion quetion quetion quetion quetion7','option1','option2','option3','0011','hint7')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(8,'BG0108','quetion quetion quetion quetion quetion quetion quetion8','option1','option2','option3','1001','hint8')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(9,'BG0109','quetion quetion quetion quetion quetion quetion quetion9','option1','option2','option3','1010','hint9')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(10,'BG0110','quetion quetion quetion quetion quetion quetion quetion10','option1','option2','option3','0101','hint10')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(11,'BG0111','quetion quetion quetion quetion quetion quetion quetion11','option1','option2','option3','1110','hint11')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(12,'BG0112','quetion quetion quetion quetion quetion quetion quetion12','option1','option2','option3','0111','hint12')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(13,'BG0113','quetion quetion quetion quetion quetion quetion quetion13','option1','option2','option3','1011','hint13')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(14,'BG0114','quetion quetion quetion quetion quetion quetion quetion14','option1','option2','option3','1101','hint14')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(15,'BG0115','quetion quetion quetion quetion quetion quetion quetion15','option1','option2','option3','1111','hint15')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(16,'BG0116','quetion quetion quetion quetion quetion quetion quetion16','option1','option2','option3','0011','hint16')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(17,'BG0117','quetion quetion quetion quetion quetion quetion quetion17','option1','option2','option3','1001','hint17')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(18,'BG0118','quetion quetion quetion quetion quetion quetion quetion18','option1','option2','option3','1010','hint18')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(19,'BG0119','quetion quetion quetion quetion quetion quetion quetion19','option1','option2','option3','0101','hint19')"); 
     tx.executeSql("INSERT INTO 'question' VALUES(20,'BG0120','quetion quetion quetion quetion quetion quetion quetion20','option1','option2','option3','1000','hint20')"); 
     tx.executeSql("CREATE TABLE answer (question_id INTEGER REFERENCES question (question_id) ON DELETE CASCADE ON UPDATE CASCADE,question_code TEXT REFERENCES question (question_code) ON DELETE CASCADE ON UPDATE CASCADE, answer TEXT, answer_code INTEGER)"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(1,'BG0101','remove if not needed',1000,'explian1')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(2,'BG0102','remove if not needed',100,'explian2')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(3,'BG0103','remove if not needed',10,'explian3')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(4,'BG0104','remove if not needed',1,'explian4')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(5,'BG0105','remove if not needed',1100,'explian5')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(6,'BG0106','remove if not needed',110,'explian6')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(7,'BG0107','remove if not needed',11,'explian7')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(8,'BG0108','remove if not needed',1001,'explian8')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(9,'BG0109','remove if not needed',1010,'explian9')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(10,'BG0110','remove if not needed',101,'explian10')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(11,'BG0111','remove if not needed',1110,'explian11')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(12,'BG0112','remove if not needed',111,'explian12')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(13,'BG0113','remove if not needed',1011,'explian13')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(14,'BG0114','remove if not needed',1101,'explian14')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(15,'BG0115','remove if not needed',1111,'explian15')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(16,'BG0116','remove if not needed',11,'explian16')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(17,'BG0117','remove if not needed',1001,'explian17')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(18,'BG0118','remove if not needed',1010,'explian18')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(19,'BG0119','remove if not needed',101,'explian19')"); 
     tx.executeSql("INSERT INTO 'answer' VALUES(20,'BG0120','remove if not needed',1000,'explian20')"); 
     tx.executeSql("CREATE TABLE image (question_id INTEGER REFERENCES question (question_id) ON DELETE CASCADE ON UPDATE CASCADE, img_src TEXT)"); 
     tx.executeSql("CREATE TABLE user (topic_id TEXT REFERENCES topic (topic_id) ON DELETE CASCADE ON UPDATE CASCADE, attempt INTEGER, score INTEGER)"); 
     tx.executeSql("CREATE UNIQUE INDEX question_code ON question (question_code)"); 



    }); 

Приведенный выше код создает базу данных javascriot.db, но не создает таблицы и строки, что может быть проблемой? Я новичок в websql и не знаю, как отлаживать? Может кто-то исправить мой код и рассказать мне, как отлаживать это?Websql Не создает таблицы

ответ

1

Вызовы WebSQL являются асинхронными, поэтому, если ваш синтаксис SQL правильный, проблема в том, что вы пытаетесь вставить данные до создания таблиц. Что вам нужно сделать, так это создать таблицу (ы) в первом вызове и вставить данные через обратный вызов успеха. Ошибка обратного вызова даст вам информацию, если что-то пойдет не так.

Общий синтаксис (описанный в в WebSQL spec):

В вашем случае:

tx.executeSql("CREATE TABLE topic (topic_id TEXT PRIMARY KEY NOT NULL, topic_name TEXT UNIQUE NOT NULL, 'topic description' TEXT)", null, 
    function (transaction, sqlResultSet) {  
     tx.executeSql("INSERT INTO 'topic' VALUES('IV','Interview','This quiz contains questions asked during most interviews.')", null, null, 
      function(transaction, error) { 
       console.log('error on insert: ' + error.message); 
      }); 
     // more inserts into 'topic' table ... 
    }, function (transaction, error) { 
     console.log('error on table create: ' + error.message); 
    }); 

// more create table/insert 
Смежные вопросы