如何获得ExecSQL的返回值,并显示给memo?不光执行select语句,还有执行其他的存储过程,比如xp_cmdshell。
解决方案 »
- 我的机器现在一运行delphi或delphi写的程序就关机重启,大家有什么解决办法吗?
- 如何把fastreport未满一页的内容,用空行补全
- 郁闷,看了半天查不出问题在哪里?帮帮忙!
- 寻求解决方法,数据插入
- delphi跪求代码··
- 求这个功能用什么写,谢谢!
- delphi&oracle的简单问题
- ################不用修改注册表的方法,可不可以实现IE中嵌入ToolBar的技术!up也有分!谢谢!############
- 如何实现让DLL与EXE共享一块内存空间?我会继续加分直到实现
- Delphi解密算法翻译为java
- access violation 报错=.=
- GetMessage休眠后如何唤醒
不能用execsql,要用open。因为execsql不返回值;而open则返回数据集2、执行其他的存储过程
需要在存储过程中定义输出参数
begin
close;
sql.clear;
sql.add('exec Proc_name (:A,:B,...)');
parameters.ParamByName('A').Value:='';
parameters.ParamByName('B').Value:='';
Execsql;
end;
adoquery1.Fields[0].Value 這個是返回的第一列的值.
依次類推.
有两种方法:
1. 中间过程记录每一步的返回值,最后合并成一个结果集返回。
如: update ...
set @error1=@@error --表示执行结果,0表示没错误,其他值表示错误代码
delete ...
set @error2=@@error
...
select @error1 error1, @error2 error2, ... --一起返回
2. 把这N步分开来调用,前台每次调用一步,得到一个返回值,如: if @key=1
begin
update ... --第一步
select @@error error1
return
end if @key=2
begin
delete ... --第二步
select @@error error2
return
end