【问题标题】:Capturing errors from WebSQL commands从 WebSQL 命令捕获错误
【发布时间】:2016-11-24 12:11:28
【问题描述】:

为了进一步了解 WebSQL,我在我的 javascript 代码中遇到了“Errorundifined”。我已经测试了代码,似乎找不到错误。但是,创建了数据库“To Do”,但没有创建表“Tasks”。有人可以帮忙吗!

<!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>

【问题讨论】:

  • 请提供代码。
  • 我正在尝试为一个仅供内部使用的离线网站构建一个 html5 关系数据库,而不使用后端服务器。这是我到目前为止的所有代码。我无法通过 javascript 中的“Errorundefind”错误。

标签: javascript html web-sql


【解决方案1】:

您在调试程序时遇到的主要问题是错误回调的签名不正确,它传递了两个参数,事务和错误(类似于成功回调如何传递事务和结果)。

如果您将errorCB 更改为

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

你会看到错误是:

SQLError {code: 5, message: "could not prepare statement (1 no such table: tasks)"}

现场示例:https://jsfiddle.net/toscqrzz/

如果您向原始 CREATE TABLE 提供相同的回调,您会看到

SQLError {code: 5, message: "could not prepare statement (1 near "create": syntax error)"}

现场示例:https://jsfiddle.net/ykhL9va6/

【讨论】:

    猜你喜欢
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    相关资源
    最近更新 更多