Таблица не создается в SQLite

#sqlite #google-chrome #google-chrome-extension

#sqlite #google-chrome #google-chrome-расширение

Вопрос:

Я хочу знать, почему note table не создается, даже если в коде нет ошибки!

Вот мой код:

  var db = openDatabase("Schedular", "1.0", "schedualar database", 5*1024*1024);
  db.transaction(function(tx) {
     tx.executeSql("CREATE TABLE NOTES (NOTE_ID INTEGER PRIMARY KEY AUTOINCREMENT, NOTE_DATE INTEGER, NOTE_TIME datetime, NOTE_DESC varchar(500),ALERT_TIME INTEGER, NOTES_MORE_DETAILS varchar(1000))",function(tx){},onError);

    });

function onError(tx, error) {
alert("Error Message: " error.message);

}
  

Вот код в jsfiddle http://jsfiddle.net/m3jUd /

Ответ №1:

У вас отсутствует параметр (2-й параметр). У нее должен быть пустой массив, поскольку вы не добавляете никаких значений.

 interface SQLTransaction {
  void executeSql(in DOMString sqlStatement, in optional ObjectArray arguments, in optional SQLStatementCallback callback, in optional SQLStatementErrorCallback errorCallback);
};
  

Поскольку вы хотели выполнить обратный вызов с успехом и ошибкой, вам не хватает массива arguments. Что-то вроде этого должно сработать.

 var db = openDatabase("Schedular", "1.0", "schedualar database", 5*1024*1024);
db.transaction(function(tx) {
  tx.executeSql("CREATE TABLE NOTES (NOTE_ID INTEGER PRIMARY KEY AUTOINCREMENT, NOTE_DATE INTEGER, NOTE_TIME datetime, NOTE_DESC varchar(500),ALERT_TIME INTEGER, NOTES_MORE_DETAILS varchar(1000))",[], onSuccess, onError);
});

function onSuccess(tx, rs) {
    alert("Success Message");
}

function onError(tx, error) {
    alert("Error Message: "  error.message);
}
  

Скрипта: http://jsfiddle.net/m3jUd/1 /