2016-02-26 147 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