Delphi:更新SQLite记录的多个字段
Delphi: Update multiple fields of a SQLite record
我正在使用以下代码更新特定 SQLite 记录的多个字段(WONumber = 工单编号)
aFDQuery.SQL.Clear;
with aFDQuery.SQL do
begin
BeginUpdate;
try
Add('update EVENTS set (SITENAME, FILENAME, PARTS, DATERECEIVED, DATECONVERTED, REMINDER, INCOMPLETE)');
Add('values (:site, :file, :parts, :received, :converted, :reminder, :incomplete) where (WONUMBER = :number)');
finally
EndUpdate;
end;
end;
aFDQuery.Params.ParamByName('number').AsInteger := Number;
aFDQuery.Params.ParamByName('site').AsString := ShortSiteName;
aFDQuery.Params.ParamByName('file').AsString := FileName;
aFDQuery.Params.ParamByName('parts').AsString := Parts;
aFDQuery.Params.ParamByName('received').AsDateTime := DateReceived;
aFDQuery.Params.ParamByName('converted').AsDateTime := DateConverted;
aFDQuery.Params.ParamByName('reminder').AsBoolean := Reminder;
aFDQuery.Params.ParamByName('incomplete').AsBoolean := Incomplete;
aFDQuery.ExecSQL;
DBConnection.Commit;
但是我得到以下错误
Error ESQLiteNativeException: while updating Tracking SQLite with: [FireDAC][Phys][SQLite] ERROR: near "values": syntax error
有什么建议吗?
该语法有什么问题?
谢谢
您的代码无效 SQL。 update
语法如下:
update events set
sitename = :site,
filename = :file,
parts = :parts,
datereceived = :received,
dateconverted = :converted,
reminder = :reminder,
incomplete = :incomplete
where wonumber = :number
这是标准 SQL 语法,跨数据库统一实施。
我正在使用以下代码更新特定 SQLite 记录的多个字段(WONumber = 工单编号)
aFDQuery.SQL.Clear;
with aFDQuery.SQL do
begin
BeginUpdate;
try
Add('update EVENTS set (SITENAME, FILENAME, PARTS, DATERECEIVED, DATECONVERTED, REMINDER, INCOMPLETE)');
Add('values (:site, :file, :parts, :received, :converted, :reminder, :incomplete) where (WONUMBER = :number)');
finally
EndUpdate;
end;
end;
aFDQuery.Params.ParamByName('number').AsInteger := Number;
aFDQuery.Params.ParamByName('site').AsString := ShortSiteName;
aFDQuery.Params.ParamByName('file').AsString := FileName;
aFDQuery.Params.ParamByName('parts').AsString := Parts;
aFDQuery.Params.ParamByName('received').AsDateTime := DateReceived;
aFDQuery.Params.ParamByName('converted').AsDateTime := DateConverted;
aFDQuery.Params.ParamByName('reminder').AsBoolean := Reminder;
aFDQuery.Params.ParamByName('incomplete').AsBoolean := Incomplete;
aFDQuery.ExecSQL;
DBConnection.Commit;
但是我得到以下错误
Error ESQLiteNativeException: while updating Tracking SQLite with: [FireDAC][Phys][SQLite] ERROR: near "values": syntax error
有什么建议吗? 该语法有什么问题? 谢谢
您的代码无效 SQL。 update
语法如下:
update events set
sitename = :site,
filename = :file,
parts = :parts,
datereceived = :received,
dateconverted = :converted,
reminder = :reminder,
incomplete = :incomplete
where wonumber = :number
这是标准 SQL 语法,跨数据库统一实施。