应该是这样吧: dim sqlcon as new adodb.connection dim sqlrec as new adodb.recordsetset sqlrec=sqlcon.Execute "exec test"
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
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
存储过程最后一句应该是: execute ('select * from '+@table)
@table 是什么,在分析器中说 要申明变量, @temptable 也不行
@table就是你带进存储过程的变量。你的存储过程不是这样定义的: create procedure 名称 @table as ......
dim sqlcon as new adodb.connection
dim sqlrec as new adodb.recordsetset sqlrec=sqlcon.Execute "exec test"
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
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
execute ('select * from '+@table)
create procedure 名称 @table as ......