使用TADOStoredProc组件在给存储过程参数@TaskCount赋值时提示参数not found?
本人delphi新手,在使用TADOStoredProc组件时,在执行到sp.Parameters.ParamByName('@TaskCount').Value := -1时提示@TaskCount not found ,怎么回事?我的存储过程中是有@TaskCount参数的
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOStoredProc1: TADOStoredProc;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
adostoredproc1.Parameters.Refresh;
end;
procedure TForm1.FormShow(Sender: TObject);
var
sp: TADOStoredProc;
begin
sp := TADOStoredProc.Create(Self);
sp.Connection := ADOConnection1;
sp.CommandTimeout := 0;
sp.ProcedureName := '[dbo].[up_build_switchtask]';
sp.Parameters.Refresh;
sp.Parameters.ParamByName('@TaskCount').Value := -1;
sp.ExecProc;
end;
end.
[解决办法]
呵,错了,应是输入参数。改成pdInput
sp.Parameters.CreateParameter('@TaskCount',ftInteger,pdInput,0,null);