gpt4 book ai didi

sql-server - SQL Server 2014 中的列名无效

转载 作者:行者123 更新时间:2023-12-02 23:57:29 24 4
gpt4 key购买 nike

我正在将一个使用 Accuracer 数据库的旧项目转换为 SQL Server。

此查询(在 Accuracer 下)执行正常:

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 中它不起作用 - 我收到此错误:

Invalid column name ' *** prenešeno z : '.

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

最佳答案

您已经被告知需要在 SQL Server 中使用单引号。但我认为更好的解决方案是使用参数。

注意,您还需要 CAST / CONVERT datetime (ZA_DATUM) 列转换为字符串:

...
UniQuery1.SQL.Text :='UPDATE TWITTER SET TWIT = TWIT + :a0 + CAST(ZA_DATUM AS varchar(100)), ZA_DATUM=:a1 where ID=:a2';
UniQuery1.ParamByName('a0').asString := ' *** prenešeno z : ';
...

关于sql-server - SQL Server 2014 中的列名无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47511295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com