0

0

分页显示的存储过程(sqlserver 2k)

php中文网

php中文网

发布时间:2016-06-07 15:44:43

|

1363人浏览过

|

来源于php中文网

原创

前两天在做网站时需要手动分页 .一开始用的是 SqlDataAdapter 的 public int Fill(DataSet, int, int, string); 但后来发现数据量一但很大时服务器的内存增长非常快 . 原因在这个DataSet 包含的记录数将不会多于由maxRecords 指示的记录数。但仍然从服务器返

   前两天在做网站时需要手动分页分页显示的存储过程(sqlserver 2k).一开始用的是 SqlDataAdapter 的 public int Fill(DataSet, int, int, string); 但后来发现数据量一但很大时服务器的内存增长非常快分页显示的存储过程(sqlserver 2k). 原因在这个 DataSet 包含的记录数将不会多于由maxRecords 指示的记录数。但仍然从服务器返回该查询所生成的整个结果集。分页显示的存储过程(sqlserver 2k)
    最后只能改为sql存储过程(其实也是在网上抄来的分页显示的存储过程(sqlserver 2k)). --这是分面的存储过程

分页显示的存储过程(sqlserver 2k)分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)CREATE    PROCEDURE dbo.GetPagingRecord 
分页显示的存储过程(sqlserver 2k)    ( 
分页显示的存储过程(sqlserver 2k)        
@tablename varchar(100),--表名或视图表 
分页显示的存储过程(sqlserver 2k)
        @fieldlist varchar(4000)='*',--欲选择字段列表 
分页显示的存储过程(sqlserver 2k)
        @orderfield varchar(100),--排序字段 
分页显示的存储过程(sqlserver 2k)
        @keyfield varchar(100),--主键 
分页显示的存储过程(sqlserver 2k)
        @pageindex int,--页号,从0开始 
分页显示的存储过程(sqlserver 2k)
        @pagesize int=20,--页尺寸 
分页显示的存储过程(sqlserver 2k)
        @strwhere varchar(4000),--条件 
分页显示的存储过程(sqlserver 2k)
        @ordertype bit=1--排序,1,降序,0,升序 
分页显示的存储过程(sqlserver 2k)

分页显示的存储过程(sqlserver 2k)    ) 
分页显示的存储过程(sqlserver 2k)
AS 
分页显示的存储过程(sqlserver 2k)分页显示的存储过程(sqlserver 2k)
/**//**
分页显示的存储过程(sqlserver 2k)名称:GetPagingRecord 
分页显示的存储过程(sqlserver 2k)作用:按任意字段进行排序分页 
分页显示的存储过程(sqlserver 2k)作者:菩提树(MARK MA) 
分页显示的存储过程(sqlserver 2k)时间:2004-12-14 
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)
*/
 
分页显示的存储过程(sqlserver 2k)    
SET NOCOUNT ON 
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)    
DECLARE @sqlstr varchar(6000
分页显示的存储过程(sqlserver 2k)    
--处理SQL中危险字符,并且将条件处理成易嵌入的形式 
分页显示的存储过程(sqlserver 2k)
    SET @strwhere=replace(@strwhere,'''',''''''
分页显示的存储过程(sqlserver 2k)    
SET @strwhere=replace(@strwhere,'--',''
分页显示的存储过程(sqlserver 2k)    
SET @strwhere=replace(@strwhere,';',''
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr='declare @CurPageNum int;' 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'declare @nextpagenum int;' 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'set @curpagenum='+cast(@PageIndex as varchar)+'*'+cast(@Pagesize as varchar)+';' 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'set @nextpagenum='+cast(@PageIndex+1 as varchar)+'*'+cast(@Pagesize as varchar)+';' 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'declare @sqlstr varchar(6000);' 
分页显示的存储过程(sqlserver 2k)    
IF @ordertype=1 
分页显示的存储过程(sqlserver 2k)    
BEGIN 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'set @sqlstr=''select '+@fieldlist+' from ( select top ''+cast(@nextpagenum as varchar)+'' * from  
分页显示的存储过程(sqlserver 2k) 
分页显示的存储过程(sqlserver 2k)        
'+@tablename+'  where '+@strwhere+' order by '+@orderfield+' desc ) as a where '+@keyfield+' not in (  
分页显示的存储过程(sqlserver 2k) 
分页显示的存储过程(sqlserver 2k)        select top 
''+cast(@curpagenum as varchar)+'' '+@keyfield+' from '+@tablename+' where '+@strwhere+'  
分页显示的存储过程(sqlserver 2k) 
分页显示的存储过程(sqlserver 2k)        order by 
'+@orderfield+' desc) order by '+@orderfield+' desc'';'
分页显示的存储过程(sqlserver 2k)    
END 
分页显示的存储过程(sqlserver 2k)    
ELSE 
分页显示的存储过程(sqlserver 2k)    
BEGIN 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'set @sqlstr=''select '+@fieldlist+' from ( select top ''+cast(@nextpagenum as varchar)+'' * from  
分页显示的存储过程(sqlserver 2k) 
分页显示的存储过程(sqlserver 2k)        
'+@tablename+'  where '+@strwhere+' order by '+@orderfield+' asc ) as a where '+@keyfield+' not in (  
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)        select top 
''+cast(@curpagenum as varchar)+'' '+@keyfield+' from '+@tablename+' where '+@strwhere+'  
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)        order by 
'+@orderfield+' asc) order by '+@orderfield+' asc'';' 
分页显示的存储过程(sqlserver 2k)    
END 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'execute( @sqlstr)' 
分页显示的存储过程(sqlserver 2k)    
PRINT @sqlstr 
分页显示的存储过程(sqlserver 2k)    
EXECUTE(@sqlstr
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)
GO
分页显示的存储过程(sqlserver 2k)

    最近在关注sql server2005 ,其t-sql增强方面改了很多,而且网上也有网友写了相对应的分页代码,简单了很多,很值得一试噢。
 


 

MvMmall 网店系统
MvMmall 网店系统

免费的开源程序长期以来,为中国的网上交易提供免费开源的网上商店系统一直是我们的初衷和努力奋斗的目标,希望大家一起把MvMmall网上商店系统的免费开源进行到底。2高效的执行效率由资深的开发团队设计,从系统架构,数据库优化,配以通过W3C验证的面页模板,全面提升页面显示速度和提高程序负载能力。3灵活的模板系统MvMmall网店系统程序代码与网页界面分离,灵活的模板方案,完全自定义模板,官方提供免费模

下载

相关专题

更多
C++ 高性能计算与并行编程
C++ 高性能计算与并行编程

本专题专注于 C++ 在高性能计算(HPC)与并行编程中的应用,涵盖多线程、并发数据处理、OpenMP、MPI、GPU加速等技术。通过实际案例,帮助开发者掌握 如何利用 C++ 进行大规模数据计算和并行处理,提高程序的执行效率,适应高性能计算与数据密集型应用场景。

5

2026.01.08

C++ 高性能计算与并行编程
C++ 高性能计算与并行编程

本专题专注于 C++ 在高性能计算(HPC)与并行编程中的应用,涵盖多线程、并发数据处理、OpenMP、MPI、GPU加速等技术。通过实际案例,帮助开发者掌握 如何利用 C++ 进行大规模数据计算和并行处理,提高程序的执行效率,适应高性能计算与数据密集型应用场景。

0

2026.01.08

PPT动态图表制作教程大全
PPT动态图表制作教程大全

本专题整合了PPT动态图表制作相关教程,阅读专题下面的文章了解更多详细内容。

42

2026.01.07

c++ Libcurl用法详解
c++ Libcurl用法详解

本专题整合了c++ Libcurl用法详解,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

c++ Libcurl用法大全
c++ Libcurl用法大全

本专题整合了c++ Libcurl用法详解,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

C++ vector用法汇总
C++ vector用法汇总

本专题整合了C++中vector的用法大全,阅读专题下面的文章了解更多详细内容。

2

2026.01.07

C++ vector用法大全
C++ vector用法大全

本专题整合了C++中vector的用法大全,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

2026年漫蛙最新官网地址
2026年漫蛙最新官网地址

漫蛙官网访问入口为https://manwa.me,另提供manwa.cc、manwa.vip、manwa.site等多节点备用链接,支持跨设备同步、个性化阅读及HTTPS安全加密。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

169

2026.01.07

php做exe需要在什么样的环境
php做exe需要在什么样的环境

PHP无法真正编译为EXE,所谓打包实为将解释器、脚本及依赖库封装成自解压容器;主流方案是ExeOutputforPHP(商业、Windows)和PHPDesktop(开源、跨平台),需手动处理扩展依赖、路径适配与运行时限制。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5

2026.01.07

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 8.2万人学习

CSS3 教程
CSS3 教程

共18课时 | 4.3万人学习

Vue 教程
Vue 教程

共42课时 | 6.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号