【发布时间】:2015-08-09 10:49:49
【问题描述】:
我使用以下代码使用TADOStoredProc 类型调用我的存储过程
MySP.Connection := aConnection;
MySP.ProcedureName := 'dbo.UpdateErrors';
MySP.Parameters.ParamByName('@Error_Number').value := -1;
MySP.Parameters.ParamByName('@NewError_Name').value := 'errorM1';
MySP.Parameters.Refresh;
MySP.ExecProc;
参数@Error_Number是使用SQL Server Management Studio的存储过程UpdateErrors的一部分,我添加snip image进行确认
但我不明白为什么会出错
【问题讨论】:
-
在设置参数之前尝试调用
MySP.Parameters.Refresh。或者在您的TADOStoredProc中创建这些参数而不调用Refresh。例如MySP.Parameters.CreateParameter('@Error_Number'...)(或在设计模式下创建) -
我不确定他们名字中的
@。 -
@TLama -- @ 应该在参数名称之前。测试。真的。
-
您可以使用 Sql Profiler 准确查看您发送的命令吗?它可能会给你一些线索。代码中的第二个参数“@NewError_Name”也存在名称不匹配,而在 db 中它是“@New_Name”
-
@user1769184,
"I changed from used names in the real application to a public Version with modified names"在这种情况下请edit 你的代码。
标签: sql-server delphi stored-procedures ado