关于ADODataSet的问题
我写了一个SQL Server存储过程,请问我怎么用ADODataSet来调用存储过程返回结果集呢?谢谢! 问题点数:100、回复次数:7Top
1 楼ourlin(寒江独钓)回复于 2006-03-04 11:26:21 得分 0
with ADODataSet do
begin
close;
commandtype:=cmdtext;
commandText:='Exec myProcedure';
prepared:=false;
prepared:=true;
open;
end;Top
2 楼lovendII(流氓都做了城管)回复于 2006-03-04 11:37:20 得分 0
也可以用adoquery来调用
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('exec myProcedure');
adoquery.exesql;
或者用 clientdataset
clientdataset.close;
clientdataset.commandtext:='exec myProcedure';
clientdataset.execute;
Top
3 楼linktoppeng()回复于 2006-03-04 11:38:55 得分 0
问题是我的存储过程有参数啊。怎么做呢。我是在SQL server2000中Top
4 楼linktoppeng()回复于 2006-03-04 11:42:20 得分 0
比如我的存储过程 PrintDeliver它需要一个@DeliverNo参数
在SQL sever2000中我直接exec PrintDeliver 'bb'就行了。
问题是我不知道怎么把这个参数传进去Top
5 楼helodd(感动/angle)回复于 2006-03-04 11:44:10 得分 0
clientdataset.close;
clientdataset.commandtext:='exec myProcedure :P1,:P2';
ClientDataset.Params.ParamByName('P1').Value:='1';
ClientDataset.Params.ParamByName('P2').Value:='2';
clientdataset.execute;Top
6 楼lovendII(流氓都做了城管)回复于 2006-03-04 11:53:54 得分 0
这样也可以,假设有两个参数,分别用edit1,edit2的值传给这两个参数.
clientdataset.close;
clientdataset.commandtext:='exec myProcedure '''+edit1.text+''','''+edit2.text+''' ';
clientdataset.execute;
Top
7 楼chb5210(沉默)回复于 2006-03-04 12:39:55 得分 0
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='EXEC 存储过程名'+' '+Quotedstr(edit1.Text)+','+Quotedstr(edit2.Text);
ADOQuery1.ExeSQL;Top




