数据库已打开,表已创建。但我无法插入记录,我正在使用mozilla sqlite存储:
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/FileUtils.jsm");
let file = FileUtils.getFile("ProfD", ["filef.sqlite"]);
let dbconn = Services.storage.openDatabase(file);
dbconn.executeSimpleSQL('CREATE TABLE IF NOT EXISTS "quicklink" ("id" INTEGER PRIMARY KEY NOT NULL , "name" VARCHAR NOT NULL , "href" VARCHAR NOT NULL )');
var sqlinsert=dbconn.createStatement('INSERT INTO "quicklink" ("name","href") VALUES (:name,:href)');
sqlinsert.params.name = "Something";
sqlinsert.params.href = "URL";
dbconn.close();
我在firebug控制台中没有收到任何错误,或者在try {} catch(){}语句中显示错误。为什么?这有什么问题呢?
答案 0 :(得分:2)
通常,您无法从客户端Javascript进行数据库访问。
有很多例外(例如,您可能在服务器上使用Node.js,或者您在本地Sqlite数据库上使用HP WebOS),但我的帖子中没有看到任何关于您的内容环境或数据库连接。
假设您可以在您的环境中使用Javascript合法地连接到数据库,我看不到您在哪里执行准备好的SQL语句。
建议:
请指定您正在使用的数据库和数据库
请向我们展示“执行”声明和相应的错误处理程序
请剪切/粘贴您在错误处理程序或数据库日志中收到的任何错误消息。
附录:
好的 - 我现在和你在一起:1)您正在使用Mozilla“存储”API。
2)你需要在“createStatement()”之后调用“executeStatement()”。
3)你还应该有一个“handleError”函数。
文档和示例代码在此处:
答案 1 :(得分:0)
您使用的数据库服务器是什么?如果您使用的是SQL Server,请使用分析器查看实际执行的针对SQL Server的命令,并查看它生成的错误。