日期:2014-05-19  浏览次数:20426 次

ASP调用带参存储过程的一个错误(望大家速度点解决)
我这样执行一个带参数的存储过程
set   rs4=server.createobject( "adodb.recordset ")
rs4.open   "exec   Fast_Search_12Part   "&get_spbh_id& " ",conn

然后用下面的程序分页
if   Not   IsEmpty(page)   then   '如果page已经初始化...
if   Not   IsNumeric(page)   then   '判断page值是否为数字
page=1
else
page   =   cint(page)   '接收page并化为数字型赋给page变量
end   if      
if   page   >   allpage   then   '如果接收的页数大于总页数
rs4.AbsolutePage   =   allpage   '设置当前显示页等于最后页   ---注意这是第113行                
elseif   Page   <=   0   then   '如果page小于等于0
rs4.AbsolutePage   =   1   '设置当前显示页等于第一页
else
rs4.AbsolutePage   =   Page   '如果大于零,显示当前页等于接收的页数  
end   if
else
rs4.AbsolutePage=1
end   if
page   =   rs4.AbsolutePage


结果出现下面的错误
错误类型:
ADODB.Recordset   (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/product/prolist.asp,   第   113   行

------解决方案--------------------
我以前写过,现在忘光了

可以用参数的,但是参数的输入输出类型,要查看
ADO的帮助后的数值.
------解决方案--------------------
sql分页要特殊处理

在存储过程调用之前加入代码
RS.cursorlocation=3

存储过程打开必须用如下代码
RS.open CMD,,3