2011-09-02 75 views
-3

数据库已打开,表已创建。但我不能插入记录,我的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(); 

我不明白的萤火控制台任何错误(S),或白衣尝试{}赶上(){}语句。为什么?它有什么问题呢?

+8

不知道这是什么语法,但这段代码的'execute'部分在哪里? – SQLMenace

+2

“不起作用”是什么意思?有没有错误?它是否默默地失败? –

+0

不起作用,意味着它不会将记录添加到表格中 – golddragon007

回答

2
  1. 一般来说,你不能从客户端的Javascript进行数据库访问。

    有很多例外情况(例如,也许您在服务器上使用Node.js,或者您可能在本地Sqlite数据库上使用HP WebOS),但是在您的文章中没有看到任何内容您的环境或数据库连接。

  2. 假设您可以在您的环境中使用Javascript合法地连接到数据库,我没有看到您正在执行准备好的SQL语句的位置。

建议:

  1. 请注明您正在使用

  2. 请向我们展示了 “执行” 语句和相应的错误处理程序的数据库和数据库库

  3. 请剪切/粘贴您在错误处理程序或数据库日志中获得的任何错误消息。

附录:

好 - 我现在和你在一起:

1)您使用Mozilla的 “存储” API。

2)您需要在“createStatement()”之后调用“executeStatement()”。

3)你还应该有一个“handleError”函数。

的文档和示例代码是在这里:

http://developer.mozilla.org/En/Storage

+0

Components.utils.import(“resource://gre/modules/Services.jsm”); \t Components.utils.import(“resource://gre/modules/FileUtils.jsm”); \t \t let file = FileUtils.getFile(“ProfD”,[“filef。sqlite“]); \t let dbconn = Services.storage.openDatabase(file); \t dbconn.executeSimpleSQL('CREATE TABLE IF NOT EXISTS”quicklink“(”id“INTEGER PRIMARY KEY NOT NULL,”name“VARCHAR NOT NULL ,“href”VARCHAR NOT NULL)'); \t var sqlinsert = dbconn.createStatement('INSERT INTO“quicklink”(“name”,“href”)VALUES(:name,:href)'); \t sqlinsert。 params.name = “东西”; \t sqlinsert.params.href = “URL”; – golddragon007

+0

dbconn.close(); 这是在Firefox插件...而创建表的工作 – golddragon007

+0

在第一个!你在第二个执行语句 - >'executeSimpleSQL',你不是 – SQLMenace

0

什么数据库服务器您使用的?如果您使用的是SQL Server,请使用分析器查看SQL Server实际执行的命令,并查看它生成的错误。

+0

firefox有sqlite ... – golddragon007