2011-09-02 130 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