我正在将使用Accuracer数据库的旧项目转换为SQL Server。
此查询(在准确者下)执行正常:
procedure TForm1.Prebaci1Click(Sender: TObject);
begin
DataModule2.UniQuery1.Close;
DataModule2.UniQuery1.SQL.Clear;
DataModule2.UniQuery1.SQL.Text :='UPDATE TWITTER SET TWIT = TWIT + " *** prenešeno z : " +(ZA_DATUM),ZA_DATUM=:a1 where ID=:a2';
DataModule2.UniQuery1.ParamByName('a1').asDate :=cxDateNavigator1.Date;
DataModule2.UniQuery1.ParamByName('a2').asInteger := cxGrid1DBTableView1.DataController.Values[cxGrid1DBTableView1.DataController.FocusedRecordIndex,0];
DataModule2.UniQuery1.ExecSQL;
DataModule2.UniStoredProc1.Refresh;
end;
但是在SQL Server中它不起作用 - 我得到了这个错误:
无效的列名'***prenešenoz:'。
我做错了什么?需要特别包围的东西?
答案 0 :(得分:1)
字符串引用'在SQL中。你正在使用"。 制作一个单一的'在Delphi中只需写下你的字符串'' (两个单打)。
DataModule2.UniQuery1.SQL.Text :='UPDATE TWITTER SET TWIT = TWIT + '' *** prenešeno z : '' +(ZA_DATUM),ZA_DATUM=:a1 where ID=:a2';