2016-11-24 2 views
-1

В попытке узнать больше о WebSQL я столкнулся с «Errorundifined» в своем javascript-коде. Я проверил код и не могу найти ошибку. Однако создается база данных «To Do», но не таблица «Задачи». Может кто-то помочь!Захват ошибок из команд WebSQL

<!doctype html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>Untitled Document</title> 
    <script type="text/javascript" src="../js/jquery.js"></script> 
    <script> 
     var db = null; 
     var db = openDatabase('To Do', '1.0', 'To Do', 2 * 1024 * 1024); 
     db.transaction(function(tx) { 
      tx.executeSql('CREATE TABLE IF NOT EXISTS tasks (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, create unique, name, description, due DATETIME)'); 
}); 

     $('document').ready(function() { 
      var db = openDatabase('To Do', '1.0', 'To Do', 2 * 1024 * 1024);   
      db.transaction(function(tx) { 
       tx.executeSql('SELECT * FROM tasks', [], querySuccess, errorCB); 
    }); 

     function querySuccess(tx, results) { 
      var len = results.rows.length; 
       if(len > 0) { 

      }else{ 
       alert("You Have No Tasks"); 

       } 
     } 

     function errorCB(err) { 
      alert("Error" + err.code); 
     } 

    }); 

    </script> 
    </head> 

    <body> 

     <h1>Hello World!</h1> 

    </body> 
</html> 
+0

, пожалуйста, предоставьте нам код. –

+0

Я пытаюсь создать реляционную базу данных html5 для автономного веб-сайта только для внутреннего использования, без использования серверного сервера. Это весь код, который у меня есть до сих пор. Я не могу пропустить ошибку «Errorundefind» в javascript. –

ответ

0

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

если вы измените ваш errorCB на

function errorCB(tx,err) { 
    console.log(err); 
} 

Вы увидите ошибку является:

SQLError {код: 5, сообщение: «не может подготовить заявление (1 нет такой таблицы: задачи) "}

Живой пример: https://jsfiddle.net/toscqrzz/

И если вы предоставите такую ​​же функцию обратного вызова к исходному CREATE TABLE вы увидите

SQLError {код: 5, сообщение: «не может подготовить заявление (1 рядом„создать“: ошибка синтаксиса)»}

Живой пример: https://jsfiddle.net/ykhL9va6/