来源:作者: 发布时间:2007-12-25 13:50:59


老声常谈?不见得
什么翻页最简单?ado呗
设定pagesize然后用pagecount,absolutepage来控制 很爽,想怎么翻,就怎么翻(当然指游标在客户端的时候)例如:
rs.absolutepage = intpage此处是个模块级变量,用于控制现在翻到哪一页
for i = 1 to cpagesize
if not rs.eof then 添加到listview rs.movenext else假如已到最后,就退出
exit for
end if 基本上,采用上面这种翻页方式的都是才开始做数据库程式的新手,因为这样做的前提条件是您必须把需要的记录一次全部查询出来,返回到客户端,就在查询的那个时候,系统一定会慢的象死机,大量数据在瞬间要返回到客户端,嘿嘿假如同时有5~6个用户使用这个查询,估计更慢!在数据量少的时候能够考虑,但即使这样,也不能确保以后数据不会多,假如您的系统不断录入新的数据,那么总有一天这种翻页会让用户不可忍受的,所以最好尽量少采取这种翻页方式。
现在的翻页,一般都采取这几种方式,这个不是我写的,不敢乱来,请参考
http://dev.csdn.net/develop/article/37/37213.shtm
在其中,作者用的表
create table [testtable] ( [id] [int] identity (1, 1) not null , [firstname] [nvarchar] (100) collate chinese_prc_ci_as null , [lastname] [nvarchar] (100) collate chinese_prc_ci_as null , [country] [nvarchar] (50) collate chinese_prc_ci_as null , [note] [nvarchar] (2000) collate chinese_prc_ci_as null ) on [primary] go
疑问:主键以id来表示,这样假如id保持递增不变翻页没有问题,但是并不是任何表都是这种样子,只有一个递增的id主键。再看其他人的翻页,大同小异,都是以id 键并且是identity属性来举例,不知道这些同胞的表是不是都这么设计的?
假如按照有2个关键字,感觉以上翻页全部不成立,是我白痴了?还是确实如此?
当然有一种方法,能够把双关键字的表插入到一张临时表,临时表以id做标识,根据前人经验,临时表会耗费大量io操作,速度奇慢无比,能不用,则不用。
那么双关键字,甚至三关键字,到底以什么方式翻页好呢?直接拼凑sql语句的话,会很麻烦很麻烦,并不是说不能够,能有人有一个通用的做法?
我希望我能解决这个问题,但是实在感觉是困难啊,w_w
|
还没有关于此文章的相关评论!