codegooglecom / easyasp

Automatically exported from code.google.com/p/easyasp
0 stars 0 forks source link

默认存储过程分页,求解 #17

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
代码:
<%
uid=11
Set rsb = Easp.db.GetPageRecord("easp_sp_pager",Array
("shujuku","iname,ibook","id="&Uid&"","idate desc","Id",3))
Dim arrRS   
arrRS = rsb.GetRows(rsb.PageSize)   
'转为数组后可以关闭记录集   
Easp.C(rsb)   
For i = 0 To Ubound(arrRS,2)
   Easp.wn arrRS(0,i) & "的年龄是:" & arrRS(1,i) & "岁。"  

Next 
%>

结果总是报错:

调用存储过程出错!
错误信息:缺少对象

应该没错啊。字段什么的都没错。
求解。。。

Original issue reported on code.google.com by lovebb_1...@163.com on 26 Mar 2009 at 9:37

GoogleCodeExporter commented 9 years ago
直接输出记录集会不会报错?不转数组的话。

Original comment by Tainray@gmail.com on 26 Mar 2009 at 1:08

GoogleCodeExporter commented 9 years ago
一样的。这个是用的默认的分页存储过程,我尝试用这个存��
�过程好几次,都没成功。
有谁成功了吗?
给个代码看看。

Original comment by lovebb_1...@163.com on 27 Mar 2009 at 12:01

GoogleCodeExporter commented 9 years ago
我直接用
Set mySP = liuasp.db.doSP("easp_sp_pager:3",Array
("@TableName:shujuku","@FieldList:id,iname,ibook","@Where:id="&Uid&"","@Order:id

desc","@PrimaryKey:Id","@SortType:3","@RecorderCount:0","@pageSize:5","@PageInde
x:5",
"@@RecordCount","@@PageCount"))
liuasp.we mysp

我就直接这样输出一下,他也报错。

调用存储过程出错!
错误信息:缺少对象

谁能告诉我,缺少啥对象啊?

Original comment by lovebb_1...@163.com on 27 Mar 2009 at 12:17

GoogleCodeExporter commented 9 years ago
你上面帖的几个用法都有错误。
1、用存储过程分页取的记录集是没有设置rs.PageSize值的,所��
�肯定不能用。
2、当存储过程名为"easp_sp_pager"的时候,程序是做了自动参数�
��理的,所以不能再自己添加@@这样的参
数,肯定会出错的。还有set取得的对象是不能直接response.write
的。

我一直用的这个存储过程,从没出过问题。
你就简单的这样写:
<%
uid=11
Set rsb = 
Easp.db.GetPageRecord("",Array("shujuku","iname,ibook","id="&Uid&"","idate 
desc,Id asc","Id",3))
While Not rsb.Eof
    Easp.wn rsb(0)&"的年龄是"&rsb(1)&"岁"
    rsb.movenext
Wend
Set rsb = Nothing
%>
先这样试试。

Original comment by Tainray@gmail.com on 27 Mar 2009 at 5:25

GoogleCodeExporter commented 9 years ago
按照您的方法,我用了还是不行。我换成普通方法分页都没��
�问题,就存储过程不行。

例如 :
Set rs = Easp.db.GetPageRecord(0,Array("shujuku:iname,ibook","id="&Uid&""","Id 
Asc","Id"))
这样就可以正常分页
可是存储过程就不行

<%
uid=11
Set rsb = 
Easp.db.GetPageRecord("",Array("shujuku","iname,ibook","id="&Uid&"","idate 
desc,Id asc","Id",3))
While Not rsb.Eof
    Easp.wn rsb(0)&"的年龄是"&rsb(1)&"岁"
    rsb.movenext
Wend
Set rsb = Nothing
%>

我把Easp.db.Debug = false
后还是报错。

Microsoft VBScript 运行时错误 错误 '800a01a8' 
缺少对象: '[undefined]'

报错的行是
Set rsb = 
Easp.db.GetPageRecord("",Array("shujuku","iname,ibook","id="&Uid&"","idate 
desc,Id asc","Id",3))

我确认,我的数据库表明(shujuku)没错,字段名(id,iname,iboo
k)都没错,为啥总提示缺少对象?
难道是关闭了什么??奇怪???

Original comment by lovebb_1...@163.com on 27 Mar 2009 at 3:14

GoogleCodeExporter commented 9 years ago
出现错误 缺少对象: '[undefined]' 
通常是由于没有获取到需要的值。如果可以的话,请提供多��
�点你的
代码,包括上下文环境。

Original comment by Tainray@gmail.com on 28 Mar 2009 at 2:39

GoogleCodeExporter commented 9 years ago
代码
<!--#include file="easp.asp"-->
<%
'就是要分页,所以没有太多代码
'列出表shujuku中所有的数据,排序就idate desc ,id是主键。
Set rsb = 
Easp.db.GetPageRecord("",Array("shujuku","iname,ibook,idate","","idate 
desc","Id",3))
While Not rsb.Eof
    Easp.wn rsb(0)&"借到的书是"&rsb(1)&",借书日期"&rsb(2)&""
    rsb.movenext
Wend
easp.c(rsb)

Easp.db.SetPager "default", "<div class=""pager"">{first}{prev}{liststart}{list}
{listend}{next}{last}  共{recordcount}条, 每页{pagesize}条, 
{pageindex}/{pagecount}
页, 转到{jump}页</div>", Arra("jump:select","jumplong:20")  
Easp.WC Easp.db.GetPager("default") 
%>

由于我用的mssql是odbc,所以我将easp中关于连接到MSSQL数据库 
的那块代码改了。
dim connstr,conn
connstr="dsn=myodbc;uid=myname;pwd=mypass"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open connstr
liuasp.db.dbConn = Conn

我觉得应该不是这个连接的问题吧。采用普通方式分页都没��
�题,用默认存储过程就不行。

Original comment by lovebb_1...@163.com on 30 Mar 2009 at 1:19

GoogleCodeExporter commented 9 years ago
Tainray,非常抱歉,我知道问题在哪里了。
原来我没有给uid=myname 该存储过程exec的权限。
晕。。。

Original comment by lovebb_1...@163.com on 31 Mar 2009 at 12:58