2012-01-23 3 views

ответ

1

Как говорится в the guide on htm5sql.com, есть несколько способов, чтобы дать html5sql.js SQL заявления и ваша ошибка вызвана смешивая несколько различных способов.

Как и упоминавшийся в его ответе xdazz, первый аргумент html5sql.process может быть просто строкой с одним или несколькими операторами sql. Вы также можете передать массив строк sql-операторов или объектов-операторов sql. Преимущество использования объектов-операторов sql заключается в том, что вы можете определить массив данных и указать индивидуальные обратные вызовы.

Так по существу Вы можете сделать это:

$(function() { 
    html5sql.openDatabase("demo", "Demo Database", 5 * 1024 * 1024); 

    html5sql.process(
     [ 
      "DROP TABLE IF EXISTS speedtest;", 
      "CREATE TABLE speedtest (id INTEGER PRIMARY KEY, label TEXT);", 
      { 
       sql: "INSERT INTO speedtest VALUES (?, ?);", 
       data: [1,'1'], 
       success: function(transaction, results) { 
        console.info('Success Inserting First Record'); 
       } 
      }, 
      { 
       sql: "INSERT INTO speedtest VALUES (?, ?);", 
       data: [2,'2'], 
       success: function(transaction, results) { 
       console.info('Success Inserting Second Record'); 
       } 
      } 
     ], 
     function() { 
      console.log("Final Sucess Callback"); 
     }, 
     function(error, failingQuery) { 
      console.error("Error: " + error.message); 
     } 
    ); 
}); 

Демонстрационный этого можно найти in this jsfiddle

+0

Спасибо так много. Вообще-то, я ждал вашего ответа, просто у меня не было способа отправить вам «личное сообщение». Это полностью исправило это для меня. Пожалуйста, продолжайте документировать свой путеводитель, он по-прежнему пропускает некоторые вещи, например, как поймать результаты SQL-запроса. – MauroPorrasP

0

Функциональная подпись html5sql.process: html5sql.process(SQL, finalSuccessCallback, errorCallback), поэтому попробуйте ниже, и вот demo.

$(function() { 
    html5sql.openDatabase("demo", "Demo Database", 5 * 1024 * 1024); 

    var st = "DROP TABLE IF EXISTS speedtest; CREATE TABLE speedtest (id INTEGER PRIMARY KEY, label TEXT); INSERT INTO speedtest VALUES (1, '1');INSERT INTO speedtest VALUES (2, '2');"; 

    html5sql.process( 
     st, 
     function(transaction, results) { 
     console.info('Success'); 
     }, 
     function(error, failingQuery) { 
     console.error("Error: " + error.message); 
     }); 
});