关于调用存储过程的问题
有个存储过程如下,表t1有6条记录,在SQL中执行
exec au_info '01 '能查找到一条记录,但是在程序中执行如下代码,rstemp的state状态总是0,为何?
Dim adocn As New ADODB.Connection
Dim rstemp As New ADODB.Recordset
Dim strExec As String
adocn.CommandTimeout = 15
adocn.CursorLocation = adUseClient
adocn.Open "Provider=SQLOLEDB;server=.;UID=sa;pwd=;database=aaa "
strExec = "exec au_info '01 ' "
rstemp.Open strExec, adocn, adOpenKeyset, adLockReadOnly
If rstemp.State = 1 Then
MsgBox rstemp.RecordCount
Else
MsgBox "NO "
End If
'程序结束
'存储过程如下
create PROCEDURE au_info
@chartname varchar(40)
AS
declare @@code char(10)
declare @@name char(10)
IF EXISTS (select * from tempdb..sysobjects where name= '##t1 ')
DROP table ##t1
SELECT top 0 * into ##t1 FROM t1
DECLARE abc CURSOR FOR
SELECT code,name FROM t1
OPEN abc
FETCH NEXT FROM abc into @@code,@@name
WHILE (@@FETCH_STATUS = 0)
begin
insert into ##t1 values(@@code,@@name)
FETCH NEXT FROM abc into @@code,@@name
end
CLOSE abc
DEALLOCATE abc
select * from ##t1 where code=@chartname
[解决办法]
存储过程定义
set nocount on
存储过程内容
set nocount off
把这两句话加到你的存储过程里面去看看