关于存储过程的问题?1、我有以下存储过程
CREATE PROCEDURE testinoutput @i char(60) ,@o int output
AS
select @o=count( *) from zfxx
where poxm like @i
我在delphi中添加ADOStoredProc控件连接此存储过程,并把@o的类型设置为了output
然后执行以下语句:
ADOStoredProc2.Parameters.ParamByName('@i').value:='%王浩%';
ADOStoredProc2.Active:=true;//此句放在最后也出同样错误。
label1.Caption:=inttostr(ADOStoredProc2.Parameters.ParamByName('@o').value);
系统提示我ADOStoredProc: CommandText does not return a result set.
我不知道怎么改正,请指点。2、我有以下存储过程
CREATE PROCEDURE testinput @i char(40)
AS
select * from zfxx
where poxm like @i
我在delphi中添加ADOStoredProc控件连接此存储过程,然后写以下代码:
ADOStoredProc1.Parameters.ParamByName('@i').value:='%王浩%';
在ADOStoredProc1.Active:=false;的情况下:
ADOStoredProc1.Prepared:=true;
ADOStoredProc1.ExecProc; //不返回结果集
------------------------
ADOStoredProc1.Prepared:=true;
ADOStoredProc1.open; //返回结果集
------------------------
如ADOStoredProc1.Active:=true;则直接返回结果集,不用其他语句。
我想问Active,与ExecProc和open之间的区别或联系?
CREATE PROCEDURE testinoutput @i char(60) ,@o int output
AS
select @o=count( *) from zfxx
where poxm like @i
我在delphi中添加ADOStoredProc控件连接此存储过程,并把@o的类型设置为了output
然后执行以下语句:
ADOStoredProc2.Parameters.ParamByName('@i').value:='%王浩%';
ADOStoredProc2.Active:=true;//此句放在最后也出同样错误。
label1.Caption:=inttostr(ADOStoredProc2.Parameters.ParamByName('@o').value);
系统提示我ADOStoredProc: CommandText does not return a result set.
我不知道怎么改正,请指点。2、我有以下存储过程
CREATE PROCEDURE testinput @i char(40)
AS
select * from zfxx
where poxm like @i
我在delphi中添加ADOStoredProc控件连接此存储过程,然后写以下代码:
ADOStoredProc1.Parameters.ParamByName('@i').value:='%王浩%';
在ADOStoredProc1.Active:=false;的情况下:
ADOStoredProc1.Prepared:=true;
ADOStoredProc1.ExecProc; //不返回结果集
------------------------
ADOStoredProc1.Prepared:=true;
ADOStoredProc1.open; //返回结果集
------------------------
如ADOStoredProc1.Active:=true;则直接返回结果集,不用其他语句。
我想问Active,与ExecProc和open之间的区别或联系?
解决方案 »
- ehlib控件组的dbgrideh控件如何显示下拉日期选择框
- D7中,表Column的可见控制失灵??????????????????
- 在edit输入框之间切换时,为什么输入法会自动变为英文?在线等待
- 救命啊!下面VC代码(位图数据保存为BMP文件)如何用DELPHI实现?在线等
- ★★★★请问如何获取MPEG-2文件第一帧的图象并保存或使用.★★★★
- 关于TTreeview
- 能用TNMMSG和TNMMSGServ这组控件在一个程序中和两台机通讯吗?即三台机三套收发控件
- 我是初学DELPHI的小菜鸟,我有个问题
- 操作Excel
- Delphi数据库控件使用方法
- ini文件和滚动字幕
- 如何制作类似资源管理器样式的mdi窗体??
ADOStoredProc1.open; //返回结果集
这不是你自己说的吗?就是这个意思
AS
select @o=count( *) from zfxx
where poxm like @i
我在delphi中添加ADOStoredProc控件连接此存储过程,并把@o的类型设置为了output
然后执行以下语句:
ADOStoredProc2.Parameters.ParamByName('@i').value:='%王浩%';
ADOStoredProc2.Active:=true;//此句放在最后也出同样错误。
label1.Caption:=inttostr(ADOStoredProc2.Parameters.ParamByName('@o').value);
系统提示我ADOStoredProc: CommandText does not return a result set.
我不知道怎么改正,请指点。這一句不能使用
ADOStoredProc2.Active:=true;
使用ADOStoredProc2.EXecProc;我在delphi中添加ADOStoredProc控件连接此存储过程,然后写以下代码:
ADOStoredProc1.Parameters.ParamByName('@i').value:='%王浩%';
在ADOStoredProc1.Active:=false;的情况下:
ADOStoredProc1.Prepared:=true;
ADOStoredProc1.ExecProc; //不返回结果集
------------------------
ADOStoredProc1.Prepared:=true;
ADOStoredProc1.open; //返回结果集將ADOStoredProc1.ExecProc; 去掉
ADOStoredProc1.Prepared;ExecPRoc與Open的區別簡單一些說:一個將返回結果集,一個隻是執行
对于不返回结果集或仅仅返回结果到输出参数,可使用ExecProc方法后,从Parameters属性中获得。
execpro执行不返回结果集的,open相反,
2、active与open一样下面的是取返回参数的
if inttostr(adoOStoredProc2.Parameters.ParamByName('@o).value)='1' then
application.MessageBox('数据保存成功','提示',mb_ok)
else
application.MessageBox('数据保存失败,请重保存!','提示',mb_ok);