日期:2014-05-18  浏览次数:20485 次

存储过程为什么不能返回记录集???
sql= "   exec   page   'get_zhaoshang ', 'id ', 'id,company,names,bigkind,kind,url,times,dcount ',20, "&page& ", '1=1 "&SearchChar& " ', ' ', 'id   desc ' "

set   objrs=objconn.execute(sql)

do   while   not   objrs.eof   and   i <10
response.Write   objrs( "names ")& " <br> "
objrs.movenext
i=i+1
loop
response.End()
这样打印不出结果。
但是把sql打印后得到有真实参数的存储过程,放到查询分析器中可以查询出结果


------解决方案--------------------
paoluo的马甲?

------解决方案--------------------
暈,怎麼是我的馬甲。

應該是你代碼的問題吧,建議去你相應的編程語言區去問。
------解决方案--------------------
如果存储过程没问题,那应该就是你ASP代码的问题.
可俺不会ASP. 帮顶:(
------解决方案--------------------
ASP調用存儲過程的方法和查詢普通的SQL語句的方法,會不會有些區別,才會出現你這樣的情況?

你隨便測試一個別的存儲過程看看。

Create ProceDure SP_TEST
AS
Select 1 As ID
Union All
Select 2
GO

你在數據庫中建立一個這麼簡單的存儲過程

然後在ASP中運行這段代碼

sql= "EXEC SP_TEST "

set objrs=objconn.execute(sql)

do while not objrs.eof and i <10
response.Write objrs( "ID ")& " <br/> "
objrs.movenext
i=i+1
loop
response.End()


看看有沒有問題,如果還有問題,說明還是ASP語句的問題。
------解决方案--------------------
这个写法不能返回纪录集的???
objrs 是recordset 8
要不
还是老实的写command
加 parameter
然后type AdCmdStoredProc
名称
然后填充

以前都这么写
------解决方案--------------------
sql= " exec page 'get_zhaoshang ', 'id ', 'id,company,names,bigkind,kind,url,times,dcount ',20, "&page& ", '1=1 "&SearchChar& " ', ' ', 'id desc ' "

set objrs=objconn.execute(sql)

你在這句代碼設置斷點,運行這裡時,將sql中的內容復制到查詢分析器中執行,可以得到正確的結果嗎?
------解决方案--------------------
------------------------
do while not objrs.eof and i <10
response.Write objrs( "names ")& " <br/> "
objrs.movenext
i=i+1
loop
response.End()

I的值有没有 <10 ? 先objrs.movefirst 试试看