数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
关于翻页的问题

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

老声常谈?不见得

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




相关文章

相关软件