首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"handleError不是函数“运行sql.js时出错

"handleError不是函数“运行sql.js时出错
EN

Stack Overflow用户
提问于 2015-12-08 14:48:16
回答 1查看 1.2K关注 0票数 1

我正在尝试实现一个REST环境,在这个环境中,客户端的客户端数据存储在SQLite数据库中。

我以前在Cordova上用科多瓦-平方米-储藏室完成了这个任务,但是我不能用它的香草-JS对应的sql.js来完成同样的任务。

我遇到的问题是,Database()函数没有返回任何内容,所以我无法执行任何类型的查询。

这是我的测试文件(test.html):

代码语言:javascript
复制
<html>
    <head>
        <script src="https://rawgit.com/kripken/sql.js/master/js/sql.js"></script>
    </head>
    <body>
        <script>
            var sql             = window.SQL;
            var db              = sql.Database(); // Is returning undefined ?
            
            sqlstr = "CREATE TABLE hello (a int, b char);";
            sqlstr += "INSERT INTO hello VALUES (0, 'hello');"
            sqlstr += "INSERT INTO hello VALUES (1, 'world');"
            db.run(sqlstr); // Run the query without returning anything

            var res = db.exec("SELECT * FROM hello");

            console.log(res);
        </script>
    </body>
</html>

这将返回以下错误:

TypeError: this.handleError不是一个函数 sql.js 第466项

如果我自己创建this.handleError(),错误将更改为:

TypeError: db未定义 test.html 第13行

对于如何解决这个问题,有什么想法吗?我已经到处找过了,但是文件似乎很少。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-08 14:54:49

需要调用sql.Database()作为构造函数(例如,db = new sql.Database();)。注意new,就像在使用实例中一样。

代码语言:javascript
复制
var sql = window.SQL;
var db = new sql.Database();

sqlstr = "CREATE TABLE hello (a int, b char);";
sqlstr += "INSERT INTO hello VALUES (0, 'hello');"
sqlstr += "INSERT INTO hello VALUES (1, 'world');"
db.run(sqlstr);

var res = db.exec("SELECT * FROM hello");

console.log(res);
代码语言:javascript
复制
<script src="https://rawgit.com/kripken/sql.js/master/js/sql.js" type="text/javascript"></script>

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34158828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档