给个参考,邹建的说:*--分页方法:-- j9988(j9988) --*/declare @sqlstr nvarchar(4000), --查询字符串
@pagecount int,--第N页
@pagesize int--每页行数select @pagecount=3--第3页
,@pagesize=10--第页10条
,@sqlstr='select * from sysobjects'set nocount on
declare @P1 int,--P1是游标的id
@rowcount intexec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select @rowcount as 总行数,ceiling(1.0*@rowcount/@pagesize) as 页数,@pagecount as 当前页
set @pagecount=(@pagecount-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@pagecount,@pagesize 
exec sp_cursorclose @P1

解决方案 »

  1.   

    不知道wwh999提供的是用什么语言写的,看不懂啊,我用的是jsp和java,或者就用纯sql语言给我解析也行,曾找到过这部分的代码,但是因为看不懂
      

  2.   

    应该是sql语言在另一种语言中的使用,不知道哪位懂给我翻译成java语言如何?看不懂那些exec
      

  3.   

    wwh999给的当然是SQL中的语言,你可以做成一个存储过程,这样不论在什么语言环境下都可以调用
      

  4.   

    能不能提供一下看懂wwh999所给代码的资料,我对MS SQL只是会建立几个表,写几个简单的查询语句而已,现在是因为应用需要。存储过程我也不明白是什么意思,急需学习一下
      

  5.   

    能否请高手解释一下
    sp_cursoropen
    sp_cursorfetch
    sp_cursorclose 
    的参数说明
      

  6.   

    用top就可以了
    你的潜问题是:如果用top那么你没有办法控制排序规则。
    这个问题的解答是,如果你在别的方法中可以排序,那你在用top的时候当然也可以排序。
    如果你在别的方法中没有排序规则,那么在top中当然也不需要了。因为大家都是靠表自己的排序来的拉。
    top语句不管主键等排序的问题,仅仅是在执行select后,当读取到指定数量的记录后就立刻停止。
      

  7.   

    请问这种方法获取的结果集是只是一页的么?如何在java中进行调用呢? 这个存储过程放在那儿?是写在程序中么?
      

  8.   

    还是用top吧,用存储过程还需要有管理员权限才可以访问的