0

このクエリでテーブルを作成しました

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') ステートメントの何が問題なのかわかりません。

4

1 に答える 1

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'
于 2013-06-28T04:43:04.773 に答える