当前位置: 首页 > news >正文

一个不错的SQL储存过程分页,储存过程+Repeater,如果只是浏览数据的话,快就一个字...

一个不错的SQL储存过程分页,储存过程+Repeater,如果只是浏览数据的话,快就一个字
None.gif
None.gif
CREATE PROCEDURE SelectPagedSQL
None.gif(
None.gif 
@SQL nvarchar(512),
None.gif 
@IndexField nvarchar(100),
None.gif 
@PageSize int=10,
None.gif 
@PageIndex int=1,
None.gif 
@Sort nvarchar(128)=@IndexField,
None.gif 
@TotalCount int=0 output
None.gif)
None.gif 
AS
None.gif
declare @strSQL nvarchar(1024)
None.gif
None.gif
set nocount on 
None.gif
set @strSQL=' 
None.gifselect @TotalCount=count(*) from (
'+@SQL+') as t ' 
None.gif
exec sp_executesql 
None.gif
@strSQL
None.gifN
'@TotalCount int=0 OUTPUT'
None.gif
@TotalCount=@TotalCount OUTPUT 
None.gif
None.gif
declare @ItemCount int 
None.gif
set @ItemCount=@TotalCount-@PageSize*@PageIndex 
None.gif
if(@ItemCount<0
None.gif
set @ItemCount=@ItemCount+@PageSize 
None.gif
else 
None.gif
set @ItemCount=@PageSize 
None.gif
None.gif
if(@ItemCount<0)return 1 
None.gif
None.gif
set @strSQL='SELECT * FROM 
None.gif(SELECT TOP 
'+str(@ItemCount)+' * FROM 
None.gif(SELECT TOP 
'+str(@PageSize*@PageIndex)+' * FROM 
None.gif(
'+@SQL+') AS t0 
None.gifORDER BY 
'+@IndexField+' ASC) AS t1 
None.gifORDER BY 
'+@IndexField+' DESC) AS t2 
None.gifORDER BY 
' +@Sort 
None.gif
None.gif
None.gif
exec sp_executesql 
None.gif
@strSQL 
None.gif
None.gif
None.gif
GO
None.gif----------------------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

createPROCEDURE CommGetRecordByPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主键字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsReCount 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 @IsReCount != 0
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere

exec (@strSQL)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

这个也不错啊
posted on 2007-08-05 09:40 江宇旋 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/jiangyuxuan/archive/2007/08/05/843463.html


http://www.taodudu.cc/news/show-647353.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • DotNetNuke与MemberShip的结合(五年版) 三步汇总
  • 快速恢复Word、Excel的默认初始设置
  • AnkhSVN 1.0.2778 简体中文版发布
  • [转]获取xml节点值和属性值(兼容ie和firefox)
  • 请问如何把.net framework框架集成在安装程序里头?
  • 修改资料时碰到的问题,
  • 过滤脚本(C#,script,iframe,html)
  • 聊聊我对黑客技术的思考
  • 以Post方式发送数据采用WebClient
  • 今天20号!
  • discuz nt 安装,完全攻略。
  • SQL概述及在网络安全中的应用
  • F41G-UT 安装Windows server 2003系统后无法安装显卡驱动的解决办法
  • 《算法设计与分析基础》Chapt 2 算法效率分析基础
  • [转]C#中得到程序当前工作目录和执行目录的一些方法
  • MySQL 同步(三)不同版本问题
  • 在SQLSERVER EXPRESS 2005中安装northwind和pubs数据库。
  • ASP.NET中的状态管理
  • 水晶报表在浏览时,工具栏上的图标变成的X
  • [分享]极富挑战性的大公司面试的智力题
  • 简单是一种美:提高项目成功率的一些方法
  • 笔记本应用/测试软件大全(个人使用心得)
  • 解析oracle的rownum
  • 在Flash中调用xml文档
  • 浅谈JavaScript中的事件
  • [IE技巧] 如何禁止用户关闭IE浏览器
  • 企业远程接入配置 不宜贪小失大
  • 学习 TTreeView [8] - AlphaSort、CustomSort、SortType
  • WINFORM 多条件动态查询 通用代码的设计与实现
  • 刚做项目的时候