关于翻页的问题

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

老声常谈?不见得

什么翻页最简单?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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航