2013-06-28 23 views
0

我創造了我的表與此查詢更新DATETIME導致sqlite的錯誤在BB10

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','[email protected]',DATETIME('NOW'), DATETIME('NOW')) 

數據在這一點上,它工作正常。現在,如果我要像這樣運行更新查詢,

UPDATE SETTINGS SET VALUE='[email protected]' 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='[email protected]' WHERE NAME='CellIDKey' 

現在它工作正常。我不知道更新查詢中的DATETIME('NOW')語句有什麼問題。

+1

什麼是你正在嘗試運行的精確查詢?或者你真的在UPDATE的SET子句中缺少一個逗號? –

+0

我只是沒有把';'在這些陳述的最後。 sqlite並不需要運行查詢。他們是完整的陳述。 – Tahlil

回答

1

這不是有效的SQL:

UPDATE SETTINGS SET VALUE='[email protected]' CREATE_DATE_TIME=DATETIME('NOW') WHERE NAME='CellIDKey' 
-- ---------------------------------------------------^ Missing comma! 

在一組個人作業需要用逗號隔開,像這樣:

UPDATE SETTINGS 
SET VALUE='[email protected]', -- This comma is needed 
    CREATE_DATE_TIME=DATETIME('NOW') 
WHERE NAME='CellIDKey' 
+0

謝謝。如此愚蠢的錯誤:( – Tahlil