DELPHI AdoStoredProc问题

原来是手动设置好了ProcedureName,传好参数之后execproc都正常,(原ProcedureName为XX)在程序运行时ADOStoredProc1.Proc... 原来是手动设置好了ProcedureName,传好参数之后execproc都正常,(原ProcedureName为XX)在程序运行时 ADOStoredProc1.ProcedureName:='YY;1' 再execproc就会出错了。注:XX与YY 所用参数完全一样, 当修改了ProcedureName之后,执行execproc提示参数未找到。求高手指点 展开
 我来答
匿名用户
2013-05-19
展开全部
动态为TADOStoredProc指定ProcedureName后, 会使它原来手动添加的参数被清空, 即使你两个存储过程使用的参数完全一样, 只要ProcedureName有变化,它的Parameters就会被清空的, 所以.要动态添加参数进去,还要设置它的数据类型及值. 用一个ADOConnection连接SQLServer2000的自带用户表: Northwind, 试下下边的测试代码, 没有问题的: unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, Grids, DBGrids, ADODB;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOStoredProc1: TADOStoredProc;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Parm: TParameter;
begin
with ADOStoredProc1 do
begin
Close;
ProcedureName:='Sales by Year;1';
Parameters.Clear;
with Parameters.AddParameter do
begin
Name:='@Beginning_Date';
DataType:=ftString;
Value:='1900-01-01';
end;
with Parameters.AddParameter do
begin
Name:='@Ending_Date';
DataType:=ftString;
Value:='2010-01-01';
end;
Active:=True;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
Parm: TParameter;
begin
with ADOStoredProc1 do
begin
Close;
ProcedureName:='CustOrderHist;1';
Parameters.Clear;
with Parameters.AddParameter do
begin
Name:='@BOLID';
DataType:=ftString;
Value:='BOLID';
end;
Active:=True;
end;
end;end.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式