如何访问存储过程中SELECT返回的结果数据集?(200分)

  • 主题发起人 主题发起人 alert
  • 开始时间 开始时间
A

alert

Unregistered / Unconfirmed
GUEST, unregistred user!
我在服务器端的存储过程中执行SELECT返回了一个结果数据集,在服务器上手工执行存储过程已经成功,但不知在DEPHI中用什么方法可以访问这个数据集,
您能帮助我吗?

谢谢!
 
在Query中写SQL语句
象访问一个表那样访问,传参数也一样
 
use Tstoredproc
用这个控件
 
在TQuery中执行 exec You_Proc.

使用Tquery.Open or Tquery.Active:=True;
 
与TQuery使用方法一致。
 
你用TStoredProc.open来执行
可以向query一样访问的
如x:=StoredProc['xxx']
 
我也亭亭.

如果我想在storeproc里面读取记录集,并做相应操作呢?
 
Storedproc1.FieldByName('yourfield1')

Query1.FieldByName('yourfield')
 
怎么样直接在storeproc里面访问结果集???? 而不是在客户端!!!
 
问题是“但不知在DEPHI中用什么方法可以访问这个数据集”
指的在客户端吧?
 
是我自己想问这个问题的,教教我吧!
 
用语句:select * from spname(100)
其中spname是存储过程的名字,100是传给它的参数(如果它带参数的话)。
 
哎呀,也许我没说明白,比如我想做这样一个存储过程:
select * from xxxx where id=@id
while not ....eof ?????
....
if ...fieldbyname('ddf')=.... then
....
end;

我希望这段代码完全在存储过程里面完成,怎样实现?

看来我不添点分,你们是不会好好回答我了. 我添200分.
 
declare mycursor scroll cursor for
select * from xxxx where id=@id
open mycursor
fetch next from mycursor
while (@@fetch_status=0)
begin
/*do something*/
fetch next from mycursor
end
close mycursor
cAkk都说加分了,想不回答都不行。
 
看上去好眼熟啊! 怎么和PB的代码这么相像??!!

那么在这个PROCEDURE里面怎样使用变量?

(等我高明白了就给分.)
 
变量照用。
declare @aa int
上面的declare mycursor scroll cursor
就是一个游标变量
 
若使用了参数,
storeproc1.open;
.....
storeproc1.getresults;
edit1.text:=storeproc1.parambyname(' ').asstring;
 
定义游标里面的那个scroll是干什么的?
 
表示游标可以前滚、后滚、任意滚。
去掉这个参数的默认情况是只能逐条后滚。(用FETCH NEXT)。
如果满意了请赏点分啊。cAkk大虾是说到做到的。
 
后退
顶部