首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于调用存储过程的有关问题

2012-01-02 
关于调用存储过程的问题有个存储过程如下,表t1有6条记录,在SQL中执行execau_info01 能查找到一条记录,但是

关于调用存储过程的问题
有个存储过程如下,表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

把这两句话加到你的存储过程里面去看看

热点排行