gpt4 book ai didi

sql-server - "Must declare the variable @myvariable"ADO 参数化查询错误

转载 作者:行者123 更新时间:2023-12-03 15:04:02 25 4
gpt4 key购买 nike

我正在尝试通过 ADO 使用参数化查询。执行 Command 对象会引发错误:

Must declare the variable '@filename'

我使用CreateParameter/Append声明参数@filename:

sql := 'INSERT INTO Sqm(Filename, data) VALUES(@filename, @data)';

command := CoCommand.Create;
command.Set_ActiveConnection(Connection.ConnectionObject);
command.Set_CommandText(sql);
command.Set_CommandType(adCmdText);
command.Parameters.Append(Command.CreateParameter('@filename', adLongVarWChar, adParamInput, -1, Filename));
command.Parameters.Append(Command.CreateParameter('@data', adLongVarWChar, adParamInput, -1, xml);

command.Execute({out}recordsAffected, EmptyParam, adCmdText or adExecuteNoRecords);

我做错了什么?

最佳答案

据我所知,ADO 不支持 SQL 语句中的命名参数(SELECT、INSERT、UPDATE),因此必须使用 ? 字符来指示参数

sql := 'INSERT INTO Sqm(Filename, data) VALUES(?, ?)';

然后按照 sql 语句中使用的顺序分配参数值。

ADO 2.6 引入了 NamedParameters属性,但似乎只适用于存储过程。

关于sql-server - "Must declare the variable @myvariable"ADO 参数化查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725222/

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