大家快来看看,为什么会出这样的怪问题(关于存储过程的)?????
存储过程代码:
-------------------------------------------
CREATE PROCEDURE proc_search5
@Page INT,
@PageSize INT,
@PageCount INT OUTPUT,
@RecordCount INT OUTPUT
AS
DECLARE @Total INT
DECLARE @ROWNO INT
DECLARE @MAXID INT
DECLARE @MINID INT
SET NOCOUNT ON
SET @PageCount=0
SET @RecordCount=0
SELECT @Total=COUNT(*) FROM ic_newStock,ic_Userinfo WHERE ic_newStock.Userid=ic_Userinfo.Userid
SET @PageCount=CEILING(CAST(@Total AS float)/@PageSize)
SET @RecordCount=@Total
IF @Total<1 OR @Page*@PageSize>@Total
RETURN @@ERROR
--SET @ROWNO=@Page*@PageSize
SET @ROWNO=(@Page-1)*@PageSize+1
SET ROWCOUNT @ROWNO
SELECT @MAXID=Infoid FROM ic_newStock,ic_Userinfo WHERE ic_newStock.Userid=ic_Userinfo.Userid ORDER BY Updtime DESC
SET @ROWNO=@Page*@PageSize
--SET @ROWNO=(@Page-1)*@PageSize+1
SET ROWCOUNT @ROWNO
SELECT @MINID=Infoid FROM ic_newStock,ic_Userinfo WHERE ic_newStock.Userid=ic_Userinfo.Userid ORDER BY Updtime DESC
SET ROWCOUNT 0
SELECT ic_newStock.Userid,Infoid,Cname,Tel,Model,Company,Encapsulation,Sno,Num,Price,Updtime,Note FROM ic_newStock,ic_Userinfo WHERE ic_newStock.Userid=ic_Userinfo.Userid AND Infoid>=@MINID AND Infoid<=@MAXID ORDER BY Updtime DESC
RETURN @@ERROR
-------------------------------------------
ASP调用代码:
-------------------------------------------
<%
PageSize=50
Page=trim(Request.QueryString("thePage"))
If Page="" Or IsEmpty(Page) Then Page="1"
Page=CLng(Page)
If Page<1 Then Page=1
Set rs=Server.CreateObject("ADODB.Recordset") '建立记录集对象
Set cmd=Server.CreateObject("ADODB.Command") '建立命令对象
cmd.CommandText="proc_search5" '存储过程名称
cmd.CommandType=4
Set cmd.ActiveConnection=Conn '数据库连接对象
cmd.Parameters.Append cmd.CreateParameter("@Page",3,1,,Page)
cmd.Parameters.Append cmd.CreateParameter("@PageSize",3,1,,PageSize)
cmd.Parameters.Append cmd.CreateParameter("@PageCount",3,2)
cmd.Parameters.Append cmd.CreateParameter("@RecordCount",3,2)
cmd.Execute
ReturnVal=cmd.Parameters(0)
PageCount=cmd.Parameters("@PageCount")
RecordCount=cmd.Parameters("@RecordCount")
If RecordCount>0 Then
set rs=cmd.Execute()
'...以下是显示语句
End If
%>
-------------------------------------------
出现的怪问题:
以下是一个结果报告:
-------------------------------------------
共找到1000条信息,当前显示为第201-250条,第5页/共20页,首页 前一页 后一页 末页
-------------------------------------------
当我让其显示第6页(以及后来页)时出错,而显示前5页均可,但是显示第4页时只显示30条记录。
请问这是什么原因?如何解决?