|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
-- 获取指定页的数据 CREATE PROCEDURE GetRecordFromPage @tblName varchar(255), -- 表名 @fldName varchar(255), -- 字段名 @PageSize int = 10, -- 页尺寸 @PageIndex int = 1, -- 页码 @IsCount bit = 0, -- 返回记录总数, 非 0 值则返回 @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序 @strWhere varchar(1000) = \\\'\\\' -- 查询条件 (注重: 不要加 where) AS declare @strSQL varchar(6000) -- 主语句 declare @strTmp varchar(100) -- 临时变量 declare @strOrder varchar(400) -- 排序类型 if @OrderType != 0 begin set @strTmp = "<(select min" set @strOrder = " order by [" + @fldName +"] desc" end else begin set @strTmp = ">(select max" set @strOrder = " order by [" + @fldName +"] asc" end set @strSQL = "select top " + str(@PageSize) + " * from [" + @tblName + "] where [" + @fldName + "]" + @strTmp + "([" + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" + @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)" + @strOrder if @strWhere != \\\'\\\' set @strSQL = "select top " + str(@PageSize) + " * from [" + @tblName + "] where [" + @fldName + "]" + @strTmp + "([" + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" + @fldName + "] from [" + @tblName + "] where " + @strWhere + " " + @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder if @PageIndex = 1 begin set @strTmp = "" if @strWhere != \\\'\\\' set @strTmp = " where " + @strWhere set @strSQL = "select top " + str(@PageSize) + " * from [" + @tblName + "]" + @strTmp + " " + @strOrder end if @IsCount != 0 set @strSQL = "select count(*) as Total from [" + @tblName + "]" exec (@strSQL) GO 返回类别: 教程 上一教程: ORACLE 数据库的备份与恢复(1) 下一教程: ACCESS数据库开发技巧(二) 您可以阅读与"实现上千万条数据的分页显示"相关的教程: · 用JAVABEAN来实现MYSQL的分页显示 · 利用MYSQL的一个特性实现MYSQL查询结果的分页显示 · 从MYSQL导入导出大量数据的程序实现方式 · SQL SERVER 2005: 利用新的RANKING函数实现高效的数据分页操作 · SQL SERVER 2000中循环插入100万条数据 |
| 快精灵印艺坊 版权所有 |
首页 |
||