如何自己控制远程数据库DB2返回记录的数目(50分)

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

ddc

Unregistered / Unconfirmed
GUEST, unregistred user!
我们在AS400上开发客户端程序,数据库用的是DB2,当我查询数据库时,可能返回几百万记录,为了控制这,我希望我每一千条一千条的取回显示,问有何
方法。设置缓存不可取,用SQL语句,我试过FISRT,TOP等,但都不成功,
请教各位高手,多谢了。另在DB2中,为何RECNO属性无效,总返回-1,而不是
当前记录的位置,请高手指点。
在这儿先送50分,另可加送200分!!!
多谢多谢!!!
 
你目前只有20分哪来的另外200分.
我这里有一个很笨很笨的办法,不知行不行.
在库上多加一个字段Forder,用来对记录进行编号1,2,3,4,......

procedure myquery(rtop,rbottom:integer);
var
sqltext:string;
begin
query1.close;
query1.sql.clear;
sqltext:='select * from table where forder>='+intostr(rtop)+
'and forder<='+intostr(rbottom);
query1.sql.add(sqltext);
query1.open;
end;

将这个过程用在你的查询里,用rtop,rbottom来指定你需要的范围:
(1-1000,10001-2000,2001-3000.....)



 
如果没有这样的字段,看我在
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=201357
的回答。
 
to g622:
Thank you!我算是DELPHI新手,底层东西都不甚清楚,请多多指教!!!
你说的存储过程,如何写,能否告知一二!!!
我EMAIL:ddc@easycon.com.cn
到时一定给兄分!!!
 
用BDE方法:
if DataSet.Active then
Check(DbiSetProp(hDBIObj(DataSet.Handle), curMAXROWS, MaxRows))
这里MaxRows就是你想得到的记录数,对任何类型数据库都有效!

怎么用????
 
多人接受答案了。
 
后退
顶部