利用SQL未公开的存储过程实现分页(更加好用的一个!)--在Sql查询分析器中执行一下脚本建立存储过程p_splitpage
利用SQL未公开的存储过程实现分页(更加好用的一个!)--
create procedure p_splitpage   
利用SQL未公开的存储过程实现分页(更加好用的一个!)
if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[p_splitpage]'and OBJECTPROPERTY(id, N'IsProcedure'= 1)
利用SQL未公开的存储过程实现分页(更加好用的一个!)
drop procedure [dbo].[p_splitpage]
利用SQL未公开的存储过程实现分页(更加好用的一个!)
GO
利用SQL未公开的存储过程实现分页(更加好用的一个!)
利用SQL未公开的存储过程实现分页(更加好用的一个!)
--利用SQL未公开的存储过程实现分页
利用SQL未公开的存储过程实现分页(更加好用的一个!)
CREATE PROCEDURE P_SPLITPAGE
利用SQL未公开的存储过程实现分页(更加好用的一个!)(
利用SQL未公开的存储过程实现分页(更加好用的一个!)    @SQL 
NVARCHAR(4000), --要执行的SQL语句
利用SQL未公开的存储过程实现分页(更加好用的一个!)
    @CURRENTPAGE INT = 2,  --要显示的页码
利用SQL未公开的存储过程实现分页(更加好用的一个!)
    @PAGESIZE INT      = 10,    --每页的大小
利用SQL未公开的存储过程实现分页(更加好用的一个!)
    @PAGECOUNT INT   = 0 OUT --总页数
利用SQL未公开的存储过程实现分页(更加好用的一个!)
)
利用SQL未公开的存储过程实现分页(更加好用的一个!)
AS
利用SQL未公开的存储过程实现分页(更加好用的一个!)
SET NOCOUNT ON
利用SQL未公开的存储过程实现分页(更加好用的一个!)
DECLARE @P1 INT
利用SQL未公开的存储过程实现分页(更加好用的一个!)
利用SQL未公开的存储过程实现分页(更加好用的一个!)
EXEC SP_CURSOROPEN @P1 OUTPUT,@SQL,@SCROLLOPT = 1,@CCOPT = 1,@ROWCOUNT = @PAGECOUNT OUTPUT
利用SQL未公开的存储过程实现分页(更加好用的一个!)
利用SQL未公开的存储过程实现分页(更加好用的一个!)
SET @PAGECOUNT  = CEILING(1.0 * @PAGECOUNT / @PAGESIZE) 
利用SQL未公开的存储过程实现分页(更加好用的一个!)
SET @CURRENTPAGE = (@CURRENTPAGE-1* @PAGESIZE + 1
利用SQL未公开的存储过程实现分页(更加好用的一个!)
--SELECT @CURRENTPAGE
利用SQL未公开的存储过程实现分页(更加好用的一个!)
EXEC SP_CURSORFETCH @P1,16,@CURRENTPAGE,@PAGESIZE 
利用SQL未公开的存储过程实现分页(更加好用的一个!)
EXEC SP_CURSORCLOSE @P1
利用SQL未公开的存储过程实现分页(更加好用的一个!)
利用SQL未公开的存储过程实现分页(更加好用的一个!)
GO
利用SQL未公开的存储过程实现分页(更加好用的一个!)
利用SQL未公开的存储过程实现分页(更加好用的一个!)
--然后在程序中就可以用以下方式调用,具体的参数请参见上面的脚本
利用SQL未公开的存储过程实现分页(更加好用的一个!)
EXEC p_splitpage 'select top 1000 id,name from sysobjects',2,10

利用SQL未公开的存储过程实现分页(更加好用的一个!)ASP中的调用
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
var db = new DB("Provider=SQLOLEDB.1;Password=mysa;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=.");
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
var strSql = "SELECT * FROM Products ORDER BY ProductID DESC";
利用SQL未公开的存储过程实现分页(更加好用的一个!)    db.setCmdType(adCmdStoredProc);
利用SQL未公开的存储过程实现分页(更加好用的一个!)    db.setCmdText(
"p_splitpage");
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
利用SQL未公开的存储过程实现分页(更加好用的一个!)    db.addCmdParam(adVarChar,
1000,strSql,"@SQL");
利用SQL未公开的存储过程实现分页(更加好用的一个!)    db.addCmdParam(adInteger,
4,1,"@CURRENTPAGE");
利用SQL未公开的存储过程实现分页(更加好用的一个!)    db.addCmdParam(adInteger,
4,10,"@PAGESIZE");
利用SQL未公开的存储过程实现分页(更加好用的一个!)    db.addCmdParam(adInteger,
4,0,"@PAGECOUNT",adParamOutput);
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
//取得输出参数必须执行无返回值的exeCmd方法
     //而不能输出值和记录集同时得到,因为这是ADO的限制!利用SQL未公开的存储过程实现分页(更加好用的一个!)
利用SQL未公开的存储过程实现分页(更加好用的一个!)
    db.exeCmd();
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
var params = db.getCmdParameters();
利用SQL未公开的存储过程实现分页(更加好用的一个!)
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
for(var i=0;i<params.Count;i++)
利用SQL未公开的存储过程实现分页(更加好用的一个!)        Apps.printLn(params(i).Name 
+ "," + params(i).Value);
利用SQL未公开的存储过程实现分页(更加好用的一个!)
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
//取得rs的方法
利用SQL未公开的存储过程实现分页(更加好用的一个!)
    var rs = db.exeCmdRs();
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
if(rs != null)
利用SQL未公开的存储过程实现分页(更加好用的一个!)    {    
利用SQL未公开的存储过程实现分页(更加好用的一个!)        rs 
= rs.NextRecordset();
利用SQL未公开的存储过程实现分页(更加好用的一个!)    }
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
for(;!rs.EOF;rs.MoveNext())
利用SQL未公开的存储过程实现分页(更加好用的一个!)    {
利用SQL未公开的存储过程实现分页(更加好用的一个!)        Apps.printLn(rs(
1));
利用SQL未公开的存储过程实现分页(更加好用的一个!)    }
利用SQL未公开的存储过程实现分页(更加好用的一个!)    
利用SQL未公开的存储过程实现分页(更加好用的一个!)    db.clear();
利用SQL未公开的存储过程实现分页(更加好用的一个!)    Apps.print(Globals.getUseTime());

相关文章:

  • 2022-01-16
  • 2021-12-23
  • 2022-02-28
  • 2022-02-04
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
猜你喜欢
  • 2021-06-21
  • 2022-02-10
  • 2022-02-08
  • 2021-12-13
  • 2021-12-07
  • 2021-04-29
相关资源
相似解决方案