SQL Server 2014中的列名称无效

时间:2017-11-27 12:43:39

标签: sql-server delphi

我正在将使用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:'。

我做错了什么?需要特别包围的东西?

1 个答案:

答案 0 :(得分:1)

字符串引用'在SQL中。你正在使用"。 制作一个单一的'在Delphi中只需写下你的字符串'' (两个单打)。

DataModule2.UniQuery1.SQL.Text :='UPDATE TWITTER SET TWIT = TWIT + '' *** prenešeno z : '' +(ZA_DATUM),ZA_DATUM=:a1 where ID=:a2';