2016-02-26 204 views
0

我剛剛更新了我的一個數據庫,包括創建一個新表AUTO_VERIFICATION。該表是用下面的查詢創建:SQLite查詢返回「語法錯誤無法執行語句」

CREATE TABLE AUTO_VERIFICATION (stock text NOT NULL PRIMARY KEY, current_value double, last_high double, last_low double) 

後來嘗試使用相同類型的代碼,我已經成功地用於插入其他表中的數據插入第一個條目的時候,我得到了下面的方法錯誤(這使用我的應用程序的自定義錯誤消息):

Error in call to MShareDatabase::execQuery: near \"0.00\": syntax error Unable to execute statement (query: INSERT INTO AUTO_VERIFICATION (stock, current_value, last_high, last_low) VALUES ('CYRE3', 0.00, 0.00, 0.00) 

我只是不明白這個錯誤!我已經檢查過代碼的其他部分,我在其中創建了其他表並將數據插入到它們中,並且它的語法相同。我還使用了其中一個網站,您可以檢查您的SQL語法是否正常,並且返回OK。

請問有誰能告訴我是什麼問題?

我在Qt 5.5中使用SQLite,只是爲了記錄我的代碼中的所有其他數據庫事務函數(相當多)工作正常。

+0

在命令行上這裏正常工作與SQLite的3.10.2。我不確定區域設置是否會影響您,並且點不被解釋爲十進制分隔符? – Olli

+0

@Olli,這正是我期望從大家那裏得到的東西xD認真地說,這個錯誤是瘋狂的!無論哪種方式,我不認爲是這種情況:正如我所說,查詢具有其他查詢相同的語法,其他查詢工作正常。不過,我會試着檢查一下,如果我可能會錯過關於這方面的事情。謝謝! – Momergil

+0

非常瘋狂的錯誤!你如何創建查詢?你有沒有嘗試過綁定值? (QSqlQuery :: bindValue) – Fabio

回答

0

我明白了:在查詢結尾缺少一個右括號「)」(顯示的實際上是錯誤消息的一部分,而不是查詢本身)。

感謝所有幫助,

Momergil