rs.open "exec test " ,cnn
这儿的test没被认为是表名。可以用生成参数的方式,指定参数的类型。不过VB中我不会。

解决方案 »

  1.   

    应该是这样吧:
    dim sqlcon as new adodb.connection
    dim sqlrec as new adodb.recordsetset sqlrec=sqlcon.Execute "exec test"
      

  2.   

    dim conn as new connection
    Dim cmd As New Command
    Dim rs As New Recordset...
    conn.openSet cmd.ActiveConnection = conn
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "yourSP"
    cmd.Parameters("@table") = yourval
    rs.Open cmd
      

  3.   

    感谢各位的大力支持,但是,上面所述的各种方法我都试了,返回的结果是 rs : 对象关闭时 操作不被允许。也就是说,re没有取得结果。
      

  4.   

    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS OFF 
    GOALTER    PROCEDURE Test 
        @DateFrom smalldatetime='2002-1-1',
        @DateEnd smalldatetime='2003-1-1',
        @Type nvarchar(50)=''AS
    declare @Where nvarchar(255)
    declare @TempTable table (
    A nvarchar(100) DEFAULT (''),
    B nvarchar(100) DEFAULT (''),
    C nvarchar(100) DEFAULT (''),
    D nvarchar(100) DEFAULT ('')

    --列条件--列标题
    begin  INSERT INTO @TempTable (A,B,C,D) 
                  SELECT '分类','数量','金额','单位价(元)'
      INSERT INTO @TempTable (A,B,C,D) 
        SELECT  pType ,convert(nvarchar(255),sum(Quantity)),convert(nvarchar(255),sum(Amount)),'test'
       where ptype = @Type and 日期>=@DateFrom and 日期 <=@DateEnd AND 类别=@type group by pType--  INSERT INTO @TempTable (A,B,C)   
    SELECT * FROM @TempTable
    end
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
      

  5.   

    存储过程最后一句应该是:
    execute ('select * from '+@table)
      

  6.   

    @table 是什么,在分析器中说 要申明变量, @temptable 也不行
      

  7.   

    @table就是你带进存储过程的变量。你的存储过程不是这样定义的:
    create procedure 名称 @table as ......