分页的存储过程

代码如下:

Create procedure sp_pageQuery

@sqlstr nvarchar(4000),
@page_index int,
@page_size int ,
@rec_count int out --
as 
 set nocount on 
 declare @cursor_id int
 declare @rowcount int

exec sp_cursoropen @cursor_id output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output

set @rec_count=@rowcount

set @page_index=(@page_index-1)*@page_size+1

IF @rec_count>0 
  BEGIN
  exec sp_cursorfetch @cursor_id,16,@page_index,@page_size 
  END
 ELSE
  BEGIN
  Select 'test'='null' Where 1=2
  END

exec sp_cursorclose @cursor_id 
 set nocount off
GO

在要用的时候在那个存储过程里调用


代码如下:

Create PROCEDURE [dev].[P_Mobile_Comment_Page] 
@course_ware_id int,
@recCountPerPage int=1,
@pageIndex int =1,
@recordCount int=0 out
AS

DECLARE @sql nvarchar(4000)

SET @sql="
 Select seg_id,course_ware_id,subject,cust_name,content,create_date 
 FROM T_COURSEWARE_COMMENT 
 Where course_ware_id="+cast(@course_ware_id as varchar(10))+" 
 ORDER BY seg_id"
EXEC sp_Pagequery @sql,@pageIndex,@recCountPerPage,@recordCount out

GO

(0)

相关推荐

  • PL/SQL中编写Oracle数据库分页的存储过程

    其实 Oracle数据库的分页还是比较容易理解的.此文以oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Developer编写一个分页存储过程,要求是:可以输入表名,每页显示记录数,当前页,返回总记录数,总页数和返回的结果集. 由于需要返回查询出来的结果集,需要在PL/SQL中创建一个package,这个包里面定义一个refcursor类型,用于记录sql语句查询出来的结果集.创建包的代码如下: create or replace package pagingPackage

  • SQL Server两种分页的存储过程使用介绍

    由于现在很多的企业招聘的笔试都会让来招聘的写一个分页的存储过程,有的企业甚至要求应聘者用两种方式实现分页,如果没有在实际项目中使用过分页,那么很多的应聘者都会出现一定的问题,下面介绍两种分页的方法. 一. 以学生表为例,在数据库中有一个Student表,字段有StudentNo, ,LoginPwd, StudentName,Sex,ClassId,Phone,Address,BornDate,Email,isDel 要求:查询学生的信息,每页显示5条记录 二.第一种方式分页:利用子查询 not

  • 实现SQL分页的存储过程代码

    SQL分页的存储过程代码,需要的朋友们直接拿去用,使用非常简单. 分享代码如下 USE [SendMessage] GO /****** Object: StoredProcedure [dbo].[pages] Script Date: 07/09/2015 13:46:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[pages] ( @tbname nvarchar(100), --要

  • ADO调用分页查询存储过程的实例讲解

    一.分页存储过程 ----------使用存储过程编写一个分页查询----------------------- set nocount off --关闭SqlServer消息 --set nocount on --开启SqlServer消息 go create proc usp_getMyStudentsDataByPage --输入参数 @pagesize int=7,--每页记录条数 @pageindex int=1,--当前要查看第几页的记录 --输出参数 @recordcount in

  • SQL Server 分页查询存储过程代码

    复制代码 代码如下: CREATE PROCEDURE [dbo].[up_Pager] @table varchar(2000), --表名 @col varchar(50), --按该列来进行分页 @orderby bit, --排序,0-顺序,1-倒序 @collist varchar(800),--要查询出的字段列表,*表示全部字段 @pagesize int, --每页记录数 @page int, --指定页 @condition varchar(800) --查询条件 AS DECL

  • sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享

    最近发现现有框架的通用查询存储过程的性能慢,于是仔细研究了下代码: 复制代码 代码如下: Alter PROCEDURE [dbo].[AreaSelect]    @PageSize int=0,    @CurrentPage int=1,    @Identifier int=NULL,    @ParentId int=NULL,    @AreaLevel int=NULL,    @Children int=NULL,    @AreaName nvarchar(50)=NULL, 

  • SQL分页查询存储过程代码分享

    话不多说,请看代码 ------------------------------------- -----作者:张欣宇 -----时间:2013-06-28 -----简介:根据参数和条件分页查询 ------------------------------------- Create proc [dbo].[Up_PagingQueryByParameter] ( ----- 表名或能查询到结果的SQL语句{SQL语句左右必须有括号例:(select * from tbl1)} @TableN

  • 分页的存储过程

    复制代码 代码如下: Create procedure sp_pageQuery @sqlstr nvarchar(4000), @page_index int, @page_size int , @rec_count int out -- as   set nocount on   declare @cursor_id int  declare @rowcount int exec sp_cursoropen @cursor_id output,@sqlstr,@scrollopt=1,@cc

  • 分页 SQLServer存储过程

    /*--用存储过程实现的分页程序 显示指定表.视图.查询结果的第X页 对于表中主键或标识列的情况,直接从原表取数查询,其它情况使用临时表的方法 如果视图或查询结果中有主键,不推荐此方法 --邹建 2003.09--*/ /*--调用示例 exec p_show '地区资料' exec p_show '地区资料',5,3,'地区编号,地区名称,助记码','地区编号' --*/ /* 因为要顾及通用性,所以对带排序的查询语句有一定要求.如果先排序,再出结果.就是: exec p_show 'sele

  • ASP 千万级数据分页的存储过程

    测试语法如下:powered by jb51.netexec GetRecordFromPage news,newsid,10,100000 news 为 表名, newsid 为关键字段, 使用时请先对 newsid 建立索引. 复制代码 代码如下: /* 函数名称: GetRecordFromPage 函数功能: 获取指定页的数据 参数说明: @tblName 包含数据的表名 @fldName 关键字段名 @PageSize 每页记录数 @PageIndex 要获取的页码 @OrderTyp

随机推荐