使用TQuery组件,如何分页显示(例如每次显示20条记录,Access数据库)... (100分)

  • 主题发起人 主题发起人 liyoubin
  • 开始时间 开始时间
参见李维的《分布式系统。。》第三本ADO/COM+/MTS,用Select To N 来实现。
 
可以在SQL语句里加"top N"

此处N=20
 
query.Move(20)
 
能否告诉我解决的方法!
我急!谢谢
 
其实有一个很笨但是绝对有效的办法。
那就是每次Query结果出来以后,在显示以前,跳过 (pages-1)*20 条记录就可以了。
来一个空循环,

while not query1.eof and 没有跳完以前的记录以前 do
跳过当前记录 - query1.next
/或者 query1.move(20)

循环结束以后,显然一种情况,最后一条记录也已经显示过了,一种情况是游标在
现在需要的那个记录处。
 
不是你用什么显示数据。只要测试一下keyPress事件就行了,如果是PageUp键,
就query1.move(-20),如果是PageDown,就query1.move(20)
....OnKeyPress;
begin
try
if Key=PageDown then begin
query1.move(20);
end;
if Key=PageUp then begin
query1.move(-20);
end;
finally
if query1.eof then query1.Last;
if query1.bof then query1.First;
end;
end;
 
用AdoQuery.Recordset的属性.不过不可以对数据进行绑定.
 
效率又如何呢?
如果这样做,是先将数据拉回本地,再分页,在效率上是不行的。
我以做到在服务器上先分好页,再拉到本地吗?
 
也想知道
 
后退
顶部