Ian*_*oyd 4 sql-server delphi ado parameterized-query
我试图使用ADO参数化查询.执行该Command
对象会引发错误:
必须声明变量'@filename'
我@filename
使用CreateParameter/Append
以下方式声明参数:
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);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
RRU*_*RUZ 13
据我所知,ADO不支持SQL语句中的命名参数(SELECT,INSERT,UPDATE),因此必须使用?
char来指示参数
sql := 'INSERT INTO Sqm(Filename, data) VALUES(?, ?)';
Run Code Online (Sandbox Code Playgroud)
然后按照sql语句中使用的顺序分配参数值.
ADO 2.6介绍该NamedParameters
属性,但它似乎只适用于存储过程.
归档时间: |
|
查看次数: |
4662 次 |
最近记录: |