您的位置:首页技术开发ASP技巧 → 实现分页的例子-使用存储过程来实现分页

实现分页的例子-使用存储过程来实现分页

时间:2004/11/7 4:10:00来源:本站整理作者:蓝点我要评论(0)

在  网上 讨论 如何 实现 分页  有很多程序,我在这里向大家  介绍一种实现分页的新的方法,使用 存储过程 来实现分页

   由于 这段程序写的 比较早,那个时候 还没有 SQL 7,每一个 Varchar 只能 支持 255 个字符,所以 采取了一种比较笨的办法,如果大家有兴趣,请去  http://www.chinaasp.com/sqlbbs/default.asp 的数据库论坛发表意见,我会看情况,决定是否将这个 存储过程修改成为SQL 7 的存储过程

   并在此起到 一个 抛砖引玉  的 作用

   这个 程序只能  达到  10 个 分页

if exists (select * from sysobjects where id = object_id('dbo.sp_productPage') and sysstat & 0xf = 4)

    drop procedure dbo.sp_productPage

GO



CREATE PROCEDURE sp_productPage

@intStart TINYINT=1,

@intEnd TINYINT=10

with ENCRYPTION

AS

  Declare @strProductID VARCHAR(8),@strProductName VARCHAR(20),

  @strSQL1 VARCHAR(100),

  @strSQL2 VARCHAR(100),

  @strSQL3 VARCHAR(100),

  @strSQL4 VARCHAR(100),

  @strSQL5 VARCHAR(100),

  @strSQL6 VARCHAR(100),

  @strSQL7 VARCHAR(100),

  @strSQL8 VARCHAR(100),

  @strSQL9 VARCHAR(100),

  @strSQL10 VARCHAR(100),

  @intCCount TINYINT,

  @intCount TINYINT,

  @i TINYINT

  select @i=1

  Declare cur_Product SCROLL CURSOR For

   Select ProductID,ProductName from KF_Product order by ProductID

   Select @intCCount=count(productId) From KF_Product

  open cur_Product

  Fetch ABSOLUTE @intStart From cur_Product Into @strProductID,@strProductName

  if @@FETCH_STATUS=0

    Select @intCount=@intStart

  Fetch cur_Product Into @strProductID,@strProductName

  if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL1='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount) +' Union '

       End

   else

    Begin

       Select @strSQL1='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

    End

  Fetch cur_Product Into @strProductID,@strProductName

  if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL2='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)+' Union '

       End

    else

       Begin

          Select @strSQL2='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

          Goto EndPro

       End

    Fetch cur_Product Into @strProductID,@strProductName

    if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL3='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)+' Union '

       End

    else

      Begin

       Select @strSQL3='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

      End

  Fetch cur_Product Into @strProductID,@strProductName

if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL4='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)+' Union '

       End

    else

      Begin

       Select @strSQL4='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

      End

  Fetch cur_Product Into @strProductID,@strProductName

if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL5='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)+' Union '

       End

    else

      Begin

       Select @strSQL5='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

      End

   Fetch cur_Product Into @strProductID,@strProductName

  if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL6='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)+' Union '

       End

    else

      Begin

       Select @strSQL6='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

      End

  Fetch cur_Product Into @strProductID,@strProductName

  if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL7='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)+' Union '

       End

    else

      Begin

       Select @strSQL7='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

      End

  Fetch cur_Product Into @strProductID,@strProductName

if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL8='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)+' Union '

       End

    else

      Begin

       Select @strSQL8='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

      End

  Fetch cur_Product Into @strProductID,@strProductName

if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL9='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)+' Union '

       End

    else

      Begin

       Select @strSQL9='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

      End

  Fetch cur_Product Into @strProductID,@strProductName

if @@FETCH_STATUS=0

       Begin

         Select @intCount=@intCount+1

         Select @strSQL10='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       End

    else

      Begin

       Select @strSQL10='Select productId=''' + @strProductID + ''',productName=''' + @strProductName+ ''',ProductCount=' + convert(VARCHAR,@intcCount)+',ProductSumCount='+ convert(VARCHAR,@intCCount)

       Goto EndPro

      End

EndPro:  

close cur_Product

DEALLOCATE  cur_Product

print @strSQL1

print @strSQL2

print @strSQL3

exec(@strSQL1 + @strSQL2+ @strSQL3+@strSQL4+@strSQL5+@strSQL6+@strSQL7+@strSQL8+@strSQL9+@strSQL10)

GO

存储 过程创建 成功后,就可以在ASP 中 做 如下 调用

strSQL="sp_productPage 1,10

rst.open strSQL,conn,3,1

就可以了






相关阅读 Mac访问Windows共享文件夹Windows 7正版系统验证方法windows 8.1系统版本号查看方法Windows 8.1系统电话激活时无法输入微软返回代码解决方法Windows 8如何调整屏幕分辨率windows8.1磁盘占用100%解决方法Mac双系统如何删除Boot Camp安装的Windows分区Apple教你如何在Mac 上运行 Windows

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案