执行存储过程带参数,分页的功能就不能用了,为什么?

smartyyp 2005-01-28 09:27:16
****错误信息:
ADODB.Recordset (0x800A0CB3)
Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.
****存储过程:
是有参数的
****asp中调用代码:
strQuery = "exec sp_test '"&request("aa")&"','"&request("bb")&"','"&request("cc")&"','"&request("dd")&"'"

dim iPageCount,iCurPage,iRow,iRec
iRec = (p-1)*iRow+1
set Rs = server.CreateObject("ADODB.RECORDSET")'****************出错位置
Rs.Open strQuery,Conn2,3,1
if rs.eof then response.end
rs.pagesize=iRow
rs.absolutepage=p '****************可能出错原因
iCount=Rs.RecordCount
Rs.CacheSize=iRow
****疑惑:
1。不带参数的存储过程就可正常运行
2。用调用存储过程的方法调用也不行
dim iPageCount,iCurPage,iRow,iRec
iRec = (p-1)*iRow+1
' strQuery = "select top 50 * from transactions " & strWhere & " order by transtime desc"

'response.write strQuery & "<br>"
'这些值在 VB 中是预定义常量

'建一个command对象
set CmdSP = Server.CreateObject("ADODB.Command")

'建立连结
CmdSP.ActiveConnection = Conn2

'定义command 对象调用名称
CmdSP.CommandText = strQuery

'设置command调用类型是存储过程 (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc

'往command 对象中加参数
'定义存储过程有直接返回值,并且是个整数,省缺值是4
CmdSP.Parameters.Append CmdSP.CreateParameter("@retailer", adVarChar, adParamInput, 16,outlet)
'CmdSP.Parameters.Append CmdSP.CreateParameter("@branch", adVarChar, adParamInput, 15,branch)
'CmdSP.Parameters.Append CmdSP.CreateParameter("@starttime", adVarChar, adParamInput, 30,transdate_low)
'CmdSP.Parameters.Append CmdSP.CreateParameter("@endtime", adVarChar, adParamInput, 30,transdate_high)
'然后生成记录集
Set rs = CmdSp.Execute

'set Rs = server.CreateObject("ADODB.RECORDSET")
'Rs.Open strQuery,Conn2,3,1
if rs.eof then response.end
rs.pagesize=iRow
rs.absolutepage=p
iCount=Rs.RecordCount
Rs.CacheSize=iRow
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanjm 2005-01-28
  • 打赏
  • 举报
回复
如果用EXEC,是不能使用分页函数的,也不能输出参数,只能用
with oCmd
.parameters.append .createParameter("SessionID", adInteger, adParamInput, , intUserSessionID)
.parameters.append oHitLocationCount
set oRS = .execute()
end with
这个来做
mymyal123 2005-01-28
  • 打赏
  • 举报
回复
把分页功能做到存储过程中,返回参数再调用
mymyal123 2005-01-28
  • 打赏
  • 举报
回复
CmdSP.Parameters.Append CmdSP.CreateParameter("@retailer", 200, 1, 16,outlet)
孟子E章 2005-01-28
  • 打赏
  • 举报
回复
网上可以搜速到存储过程分页的例子
mymyal123 2005-01-28
  • 打赏
  • 举报
回复
cmd.CommandType = 4
yyq136 2005-01-28
  • 打赏
  • 举报
回复
strQuery = "exec sp_test '"&request("aa")&"','"&request("bb")&"','"&request("cc")&"','"&request("dd")&"'"

set Rs = server.CreateObject("ADODB.RECORDSET")'****************出错位置
Rs.Open strQuery,Conn2,3,1

这样行吗? exec 是执行的意思吗? 再这样调用Rs.Open strQuery,Conn2,3,1行不行啊.
对不起,从来没有这么写过看不懂.
希望我的疑问能给帮你点什么

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧