关于ADOStoredProc的奇怪的问题,200分奉上!在线等待!
我用ADOStoredProc调用sql server里的存储过程myproc
下面的代码却不行
ADOStoredProc1.Connection:=adoconnection1;
ADOStoredProc1.Name:=‘myproc’;
ADOStoredProc1.ExecProc;
奇怪的是如果我在属性栏里设置ADOStoredProc的connection、name之后
再用
ADOStoredProc1.ExecProc;
却可以通过
(我的存储过程里定义了一个返回参数 @maxID int output)
我想不通哪儿出问题了
这是怎么回事,难道是delphi在背后到底做了什么?
我想在程序里面动态设ADOStoredProc的name属性,该怎么办?
with DataModule_GS.StoredProc_CZY do
begin
Close;
UnPrepare;
ParamByName('iCZ').Asstring:='删除';
ParamByName('iBM').Asstring:='工伤';
ParamByName('iYH').Asstring:=ComboBox_GLYH.Text;
ParamByName('iMM').Asstring:=Edit_GLMM.Text;
ParamByName('iQX').Asstring:=ComboBox_GLQX.Text;
ParamByName('iOldYH').Asstring:=ComboBox_GLYH.Text;
Prepare;
ExecProc;
end
和上边类似
没有什么问题啊;我以前作过的就是用一个ADOStoredProc动态链接服务器程序的多个过程接口啊;一直很好
不过说来也怪;我在win2000上装的delphi6;新建一个程序;放入adotable、datasource1、和dbgrid;一样设好,可是在设计期把adotable打开没有任何问题;然后;一编译却错误;打不开adotable表;
同样的在98下面就是好的阿;
怎么回事啊??
:(郁闷
我也遇到过,你可能有参数传递,所以是这样的:
ADOStoredProc1.Connection:=adoconnection1;
ADOStoredProc1.Name:=‘myproc’;
*********ADOStoredProc1.Parameters.Refresh;********
ADOStoredProc1.Parameters[1]=.....
...
ADOStoredProc1.ExecProc;
参数要刷新,否则得不到最新的参数列表!
如果还有问题,就把
ADOStoredProc1.Name='myproc;1';
试试看吧
ADOStoredProc1.Connection := ADOConnection1;
ADOStoredProc1.ProcedureName := 'myproc';
ADOStoredProc1.Parameters.Refresh;
ADOStoredProc1.Parameters.ParamByName('@maxID').Direction := pdOutput;
ADOStoredProc1.ExecProc;