更新DATETIME会导致BB10上出现sqlite错误

时间:2013-06-28 04:10:34

标签: c++ sqlite sql-update blackberry-10 datetime2

我用这个查询创建了我的表

CREATE TABLE SETTINGS(NAME VARCHAR(1050), VALUE VARCHAR(1550),CREATE_DATE_TIME DATETIME,UPDATE_DATE_TIME DATETIME, PRIMARY KEY(NAME))

然后我插入了这样的数据

INSERT INTO SETTINGS(NAME, VALUE ,CREATE_DATE_TIME ,UPDATE_DATE_TIME) VALUES('CellIDKey','Android@MoblLe.NAv',DATETIME('NOW'), DATETIME('NOW')) 

此时它工作正常。现在,如果我想运行这样的更新查询,

UPDATE SETTINGS SET VALUE='Android@AfriG1s.MoblLe.NAv' CREATE_DATE_TIME=DATETIME('NOW')  WHERE NAME='CellIDKey'

它在控制台上显示以下错误

QSqlError::type= "QSqlError::ConnectionError" , QSqlError::number= -1 , databaseText= "No query" , driverText= "Unable to fetch row" 

但是,如果我像这样运行此更新查询,

UPDATE SETTINGS SET VALUE='Android@AfriG1s.MoblLe.NAv' WHERE NAME='CellIDKey'

现在它运作正常。我不知道更新查询的DATETIME('NOW')语句有什么问题。

1 个答案:

答案 0 :(得分:1)

这不是有效的SQL:

UPDATE SETTINGS SET VALUE='Android@AfriG1s.MoblLe.NAv' CREATE_DATE_TIME=DATETIME('NOW')  WHERE NAME='CellIDKey'
-- ---------------------------------------------------^ Missing comma!

SET中的个别作业需要用逗号分隔:

UPDATE SETTINGS
SET VALUE='Android@AfriG1s.MoblLe.NAv', -- This comma is needed
    CREATE_DATE_TIME=DATETIME('NOW')
WHERE NAME='CellIDKey'