日期:2014-05-18  浏览次数:20462 次

看看谁能解决!
table1
id name state
1 yao 1
2 ke -1

table2
id state
1 好
2 不好

执行select a.id,a.name,b.state from table1 a left join table2 b on a.state = b.state where a.id=2
查询结果如下
id name state
2 ke

但是放到分页存储过程里就查不出信息了如下
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER Procedure [dbo].[UP_SYS_Splitpage]  
@sqlstr nvarchar(4000), --要执行的sql语句
@pagecount int, --要显示的页码(第N页)
@pagesize int --每页的大小
As
set nocount on
declare @P1 int,--P1是游标的id
@rowcount int

exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select @rowcount as allRows,ceiling(1.0*@rowcount/@pagesize) as allPageCount,@pagecount as ageCount
set @pagecount=(@pagecount-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@pagecount,@pagesize 
exec sp_cursorclose @P1
大家都帮我看看!~

------解决方案--------------------
沙发
解决不了,帮顶
------解决方案--------------------
jf
------解决方案--------------------
没明白,沙发
------解决方案--------------------
没看懂
------解决方案--------------------
楼主的分页存储过程确定正确??
感觉太乱了。 

exec sp_cursoropen这种打开游标的方式,说实话我自己没用过。
另外就算存在,那么你这里又在哪里声明了游标呢?
------解决方案--------------------
分页用得着写这么乱吗?