DELPHI 中如何取不以结果集返回的存储过程的返回值 急急 我用TADOQuery 执行 SQL 存储过程,但存储过程返回值是不以结果集形式返回的请教各位大大,能用什么方法取到存储过程返回值谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 必须用ADOStoredProc ,ADOQuery获取不到的。例:try ADOStoredProc := TADOStoredProc.Create(nil); ADOStoredProc.Connection := ADOConnection; ADOStoredProc.ProcedureName := 'sp_存储过程1'; ADOStoredProc.Parameters.CreateParameter('Result', ftBoolean, pdReturnValue, 4, 0); ADOStoredProc.Parameters.CreateParameter('sid', ftInt, pdInput, 4, 0); ADOStoredProc.Parameters.CreateParameter('name', ftString, pdInput, 20, name); ADOStoredProc.Prepared := True; ADOStoredProc.ExecProc; Result := ADOStoredProc.Parameters.ParamByName('Result').Value; //这就是返回值 finally ADOStoredProc.Free; end; 路过,问一句,请问DebugXP,用TADOQuery 执行 SQL 存储过程,返回值是不以结果集形式返回的,真的用ADOQuery得不到吗?必须用ADOStoredProc吗? 用ADOQUERY同样可以得到的:procedure TForm1.Button1Click(Sender: TObject);begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.add('exec 存储过程名称 '); adoquery1.open;end; with adoquery1 dobegin Close; SQL.Clear; SQL.add('exec proc_name p1,p2,p3'); open;//用OPEN的方法,不要用EXECSQL,如果不行,你就在要存储过程的最后加上一条select语句end; 赞成ron_xin(星雨) 的建议,再后面加上Select语句。就ok了 FastReport Memo当固定文字 文字个数为奇数时不能显示 问一下有没有使begin和end配对的IDE工具阿? 请教:如何用delphi代码实现打开win32的任意一个文件 多线程问题 求命啊! 出现一个很奇怪的问题 各位!我在三层机构中,要用两个存储过程,和几个表,规定在程序中要先运行存储结构,把结果道入到两个空表中,与其他的表一起使用!小弟 求助!怎样实现网卡远程开机? OLE问题 怎样成为Dephi高手?(来者有分) 如何对文本/字符串加密解密? 一个delphi7.0开发的问题 ﹐很有挑战性…….. 请问如何对adotable添加字段啊
例:try
ADOStoredProc := TADOStoredProc.Create(nil);
ADOStoredProc.Connection := ADOConnection; ADOStoredProc.ProcedureName := 'sp_存储过程1'; ADOStoredProc.Parameters.CreateParameter('Result', ftBoolean, pdReturnValue, 4, 0);
ADOStoredProc.Parameters.CreateParameter('sid', ftInt, pdInput, 4, 0);
ADOStoredProc.Parameters.CreateParameter('name', ftString, pdInput, 20, name); ADOStoredProc.Prepared := True;
ADOStoredProc.ExecProc;
Result := ADOStoredProc.Parameters.ParamByName('Result').Value; //这就是返回值
finally
ADOStoredProc.Free;
end;
用ADOQuery得不到吗?必须用ADOStoredProc吗?
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('exec 存储过程名称 ');
adoquery1.open;
end;
begin
Close;
SQL.Clear;
SQL.add('exec proc_name p1,p2,p3');
open;//用OPEN的方法,不要用EXECSQL,如果不行,你就在要存储过程的最后加上一条select语句
end;