本人delphi新手,在使用TADOStoredProc组件时,在执行到sp.Parameters.ParamByName('@TaskCount').Value := -1时提示@TaskCount not found ,怎么回事?我的存储过程中是有@TaskCount参数的
代码如下:
unit Unit1;interfaceuses
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.
代码如下:
unit Unit1;interfaceuses
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.
解决方案 »
- delphi调用DLL
- 这是本人制作的一个三层架构的ERP框架,希望大家帮测试一下!谢谢!
- execl读取数据问题!?
- [高分求助]WebBrowser控件里的网页代码如何响应我的按钮动作呢?
- 在三层架构中,应用程序服务器的一个棘手问题?
- sql+delphi 问题!!!!!!
- 帮我看一下哪里有错?在线等,解决马上给分!
- 关于dbgrid中一个单元格点后出现类...的按钮,我想与时间或其它控件结合怎么办啊?!
- 大家都用什么安装程序???
- 请问locate函数的问题??
- delphi左连接表时 使用clientdataset.applyUpdate 没有报错但是也没有保存到数据库
- 一个简单的问题,帮忙解答一下,谢谢
//先加下面一句。
sp.Parameters.CreateParameter('@TaskCount',ftInteger,pdOutput,0,null);
sp.Parameters.ParamByName('@TaskCount').Value := -1;
sp.ExecProc;
sp.Parameters.CreateParameter('@TaskCount',ftInteger,pdInput,0,null);
在Delphi中Ado系列控件使用xxxxx.Parameters.Refresh,可以获得存储过程的Return值以TADOStoredProc为例 ADOStoredProc1.Connection := 'xxxx'; ADOStoredProc1.ProcedureName := 'XXXX';
ADOStoredProc1.Parameters.Refresh; //刷新存储过程的参数列表 //参数赋值 ADOStoredProc1.ExecProc; ADOStoredProc1.Parameters[0].Value; //就是Return的返回值我是不是哪里用的不对,在执行到Refresh时parameters里并没有出现存储过程的参数