zjcxc(邹建)的分页问题 请进?
当我分析以下查询时:
p_show "SELECT * FROM VW_OrderDetails WHERE (Ord_ComCode='Admin') AND (Ord_CreateDate Between '2004-9-1' AND '2004-9-2') ORDER BY Ord_id Desc",1,20
报错:
服务器: 消息 103,级别 15,状态 7,行 1
以 'SELECT * FROM VW_OrderDetails WHERE (Ord_ComCode='Admin') AND (Ord_CreateDate Between '2004-9-1' AND '2004-9-2') ORDER BY Ord_id' 开头的 标识符 太长。最大长度为 128。
我使用的存储过程:
CREATE Procedure p_show
(@sqlstr nvarchar(4000), --查询字符串
@pagecount int=1, --第N页
@pagesize int=99999999) --每页行数
as
declare @rowcount int
begin
set nocount on
declare @P1 int--P1是游标的id
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount OUTPUT
select @rowcount as lngRowCount,ceiling(1.0*@rowcount/@pagesize) as lngPageCount, @pagecount as lngCurrentPage
set @pagecount=(@pagecount-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@pagecount,@pagesize
exec sp_cursorclose @P1
end
GO
请问是什么原因? "@sqlstr nvarchar(4000)"明明可以支持4000个字符的?
问题点数:20、回复次数:6Top
1 楼zjcxc(邹建)回复于 2004-09-02 22:46:33 得分 20
p_show 'SELECT * FROM VW_OrderDetails WHERE (Ord_ComCode=''Admin'') AND (Ord_CreateDate Between ''2004-9-1'' AND ''2004-9-2'') ORDER BY Ord_id Desc',1,20Top
2 楼luobiliang(阿良)回复于 2004-09-02 22:48:14 得分 0
把
"SELECT * FROM VW_OrderDetails WHERE (Ord_ComCode='Admin') AND (Ord_CreateDate Between '2004-9-1' AND '2004-9-2') ORDER BY Ord_id Desc"
(137 位字符)
改为
"SELECT * FROM VW_OrderDetails WHERE (Ord_ComCode='Admin') AND (Ord_CreateDate Between '2004-9-1' AND '2004-9-2')"
(117 位字符)
就可以了Top
3 楼luobiliang(阿良)回复于 2004-09-02 22:49:28 得分 0
xiexie !Top
4 楼luobiliang(阿良)回复于 2004-09-02 22:50:39 得分 0
请问如何结贴?Top
5 楼zlp321002(Life Is Good,Let's Shine)回复于 2004-09-02 22:52:02 得分 0
右上角,管理!!Top
6 楼luobiliang(阿良)回复于 2004-09-02 22:52:37 得分 0
xiexie !Top




