在delphi中是否支持游标?(5分)

  • 主题发起人 主题发起人 datoncg
  • 开始时间 开始时间
D

datoncg

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中是否支持游标?若支持,怎样实现?
 
服务器端CURSOR么?
 
支持,要在STOREDPROC中,实例如下:
CREATE PROCEDURE sp_searchdata (@name char(20),@year tinyint output)
AS
if exist(select * form tablename where name{字段}=@name)
begin
declare cur_getdata scroll cursor for
select year{字段}from tablename where name=@name
open cur_getdata
fetch cur_getdata into @year
close cur_getdata
deallocate cur_getdata
return(1)
end
else
begin
return(0)
end
go
在DELPHI的STOREDPROC控件中指定存储过程名,参数,然后:
storedproc1.prepare;
storedproc1.parambyname('@name').asstring:=edit1.text;
storedproc1.execproc;
storedproc1.getresult;
storedproc1.unprepare;
case storedproc1.parambyname('result').asinteger of
0:showmessage('查无此人');
1:showmessage('此人年龄为'+inttostr(stroedproc1.parambyname('@year').asinteger);
end;

 
to 王寒松 :
当然是在客户端。
to hawkview :
我原来用的是PB,他的游标定义是
declare cursor cursorname(游标名)for...
不知在DELPHI中具体用法是怎样的。
我是想从表中读出多个数据,加入到listbox中,不知怎样实现?
谢谢你们给予答复!

 
客户端没有,在服务器端写存储过程吧!
 
客户端有, 在BDE中. 可以调用相关BDE API实现. 如何实现没研究过.
 
看样子,该问题就这样结束了。
 
Delphi中数据封装在TDataSet中,还要游标做甚?
你要添加到ListBox中,只需如此这般,这般如此,这么这么这么办
listbox.item.clear;
While not table.eofdo
begin
a:=table['xxx'];
listbox.item.add(a);
table.next;
end;
 
Delphi中数据封装在TDataSet中,也就是双向的游标。
你要添加到ListBox中,只需如此这般,这般如此,这么这么这么办
with Querydo
begin
SQL.Clear ;
SQL.Add('select * from ...') ;
Open ;
end ;
listbox.item.clear;
While not Query.eofdo
begin
a:=Query.FieldByName('xx').AsString;
listbox.item.add(a);
Query.next;
end;
 
多人接受答案了。
 
后退
顶部