我正在尝试使用带有ADO的参数化查询。执行Command
对象抛出错误:“必须声明变量@myvariable”错误与ADO参数化查询
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);
我到底做错了什么?
试着用':',而不是'@'在查询中PARAMS之前。并从添加参数的位置删除@。 –
@MikaelEriksson:*第一行:'''附近语法不正确*您会感到惊讶,我当然是,没有人发布过ADO参数化查询的例子。 (可以在ADO.NET中找到很多) –
看起来您直接使用ado接口而不是tadocommand。在查询中使用'?'尝试放置变量名'values(?,?)'。我离计算机有几个小时的路程,所以我无法验证它会工作。 –