邹建的分页存储过程改了一下

邹建的分页存储过程--改了一下 
因为邹建的分页存储过程不能返回记录总数,所以每次分页还又要统计一次,所以自己在里面加了个返回记录数,这下就好用了。

@iPageCount int OUTPUT  --定义输出变量,放在@QueryStr上面

....

exec('select'+@FdShow+'from'+@QueryStr+@FdOrder) --统计记录数,放在--如果显示第一页...上面
Select @iPageCount = @@rowcount

调用方法(ASP):

MyConStr = "Driver={SQL Server};server=(local);Uid=artme;Pwd=***;Database=artme"
    DIM MyComm,UserID,UserName
    Set MyComm = Server.CreateObject("ADODB.Command")
    with MyComm
 .ActiveConnection = MyConStr    'MyConStr是数据库连接字串
 .CommandText      = "p_show" '指定存储过程名
 .CommandType      = 4           '表明这是一个存储过程
 .Prepared         = true        '要求将SQL命令先行编译
 .Parameters.Append .CreateParameter("RETURN",2,4)
 .Parameters.Append .CreateParameter("@iPageCount",3,2)
 .Parameters.append .CreateParameter("@QueryStr",200,1,4000,"select * from zw_language")
 .Parameters.append .CreateParameter("@PageSize",3,1,4,5)
 .Parameters.append .CreateParameter("@PageCurrent",3,1,4,1)
 .Parameters.append .CreateParameter("@FdShow",200,1,4000)
 .Parameters.append .CreateParameter("@FdOrder",200,1,1000)
       .Execute
    end with
   iCount = MyComm(1)
   Response.write iCount

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=566682

(0)

相关推荐

  • 邹建的分页存储过程改了一下

    邹建的分页存储过程--改了一下  因为邹建的分页存储过程不能返回记录总数,所以每次分页还又要统计一次,所以自己在里面加了个返回记录数,这下就好用了. @iPageCount int OUTPUT  --定义输出变量,放在@QueryStr上面 .... exec('select'+@FdShow+'from'+@QueryStr+@FdOrder) --统计记录数,放在--如果显示第一页...上面 Select @iPageCount = @@rowcount 调用方法(ASP): MyConS

  • 浅谈基于SQL Server分页存储过程五种方法及性能比较

    在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userName nvarchar(20) not null, userPWD nvarchar(20) not null, u

  • SQLSERVER Pager store procedure分页存储过程

    复制代码 代码如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[Pagination] @Page int = 1, -- 当前页码 @PageSize int = 10, -- 每页记录条数(页面大小) @Table nvarchar(500), -- 表名或视图名,甚至可以是嵌套SQL:(Select * From Tab Where ID>1000) Tab @Field nvarcha

  • 通用分页存储过程,源码共享,大家共同完善

    好久没有上来写点东西了,今天正好有空,共享一些个人心得,就是关于分页的存储过程,这个问题应该是老生重谈了,网上的通用存储过程的类型已经够多了,但是,好象看到的基本上不能够满足一些复杂的SQL语句的分页(也可能是我不够见多识广啊,呵呵),比如下面这句:  select '' as CheckBox, A.TargetID, A.TargetPeriod, Convert(varchar(10), B.BeginDate, 120) as BeginDate,      Convert(varcha

  • 自己收集比较强大的分页存储过程 推荐

    (下面的代码原来我想用折叠的代码的,但是在google里面老是添加不了折叠的代码,所以就整屏的贴出来了,望大家不要见外.) 朋友的比较好的存储过程.优点是:性能非常的高,每次查询都是根据ID查询,每次都是对一半的数据进行分页.缺点是:当有多个排序条件时,分页数据显示会出现问题.(该问题在第二个网友的分页存储过程中有解决的方法). 复制代码 代码如下: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[proc

  • 分页存储过程(一)使用sql2005的新函数构造分页存储过程

    其实在很多时候设计的度还是要把握的,不至于让自己陷入[非要把它设计成万能的分页存储过程]的怪圈中才是最重要的,因为我们还要留出时间还解决其他的很多问题,个人认为适度就可以了,留出一定的空间.也因为万能是不存在的,万物在一定的范畴之内都是合理的,出了范畴可能就没有合理的了. 分页存储过程大致有下列几种 1. 利用Not in 和select top 2. 利用id大于多少和select top 3. 利用sql中的游标 4.临时表 可以参看网上的以下链接 C#中常用的分页存储过程小结http://

  • SQL Server 2005通用分页存储过程及多表联接应用

    这是不久前写的一个分页存储过程,可应用于SQL Server 2005上面: 复制代码 代码如下: if object_ID('[proc_SelectForPager]') is not null Drop Procedure [proc_SelectForPager] Go Create Proc proc_SelectForPager ( @Sql varchar(max) , @Order varchar(4000) , @CurrentPage int , @PageSize int,

  • [数据库] 通用分页存储过程第1/5页

    分页存储过程共有四种方式可以实现,行计数.游标.升序-降序.子查询 我记得曾经有人测试过这四种方式的效率分别是 从性能最好到最差的顺序进行的--行计数.游标.升序-降序.子查询 以下是我收集的一些资料供大家参考 QUOTE: 原文地址:http://www.codeproject.com/aspnet/PagingLarge.asp 作者:Jasmin Muharemovic  译者:Tony Qu 下载: 介绍 在Web应用程序中,对一个大数据库结果集进行分页已经是一个家喻户晓的问题了.简单的

  • asp.net 分页存储过程实例剖析心得

    1.开始还原 下面先看一下原来的分页存储过程. 复制代码 代码如下: ALTER PROCEDURE [dbo].[sp_Sql_Paging] ( @SqlDataTable NVARCHAR(4000), -- 表名 @PrimaryKey NVARCHAR(4000), -- 主键名称 @Fields NVARCHAR(4000), -- 要返回的字段 @pageSize INT, -- 页尺寸 @pageIndex INT, -- 页码 @recordCount INT OUTPUT,

  • 如此高效通用的分页存储过程是带有sql注入漏洞的zt

    在google中搜索"分页存储过程"会出来好多结果,是大家常用的分页存储过程,今天我却要说它是有漏洞的,而且漏洞无法通过修改存储过程进行补救,如果你觉得我错了,请读下去也许你会改变看法. 通常大家都会认为存储过程可以避免sql注入的漏洞,这适用于一般的存储过程,而对于通用分页存储过程是不适合的,请看下面的代码和分析! 一般的通用的分页存储过程代码如下: 复制代码 代码如下: CREATE PROCEDURE pagination @tblName varchar(255), -- 表名

随机推荐