CREATE PROCEDURE test AS
...
declare @sqlt1 varchar(6000)
select @sqlt1='SELECT
Sum(tempTable' + @sqlcur +'.加工金额) AS [Sum Of 加工金额],
Sum(tempTable' + @sqlcur +'.重量) AS [Sum Of 重量],
Sum(tempTable' + @sqlcur +'.发注金额) AS [Sum Of发注金额]
FROM tempTable' + @sqlcur
exec (@sqlt1)在vb中运行下面代码:
...
rs.open "test",adocn 'adocn is connection string
if rs.recordcount=0 then
在执行到最后一句话时,提示错误“rs已经关闭”。是不是因为我的存储过程中的select中含有变量@sqlcur,我该如何解决这个问题?
谢谢了先!
传入的参数么?
对应的1,2,3然后查询对应的表table1,table2,table3之类 ??
你看看是不是"test"问题
--〉
if not rs.eof then
if rs.recordcount=0 then ...
end if
关于@sqlcur的实际代码如下:
declare @sqlcur varchar(1000)
exec outputtemptable @sqlcur output
通过调用子存储过程作为输出参数得到,每次得到的@sqlcur的值都可能不一样。
set rs=new recordset
字符串其它地方是不是有语法问题你自己去想这种写法我是写得最多的,相信我呀!CREATE PROCEDURE test AS
...
declare @sqlt1 varchar(6000)
select @sqlt1='SELECT
Sum(tempTable' + convert(nvarchar,@sqlcur) +'.加工金额) AS [Sum Of 加工金额],
Sum(tempTable' + convert(nvarchar,@sqlcur) +'.重量) AS [Sum Of 重量],
Sum(tempTable' + convert(nvarchar,@sqlcur) +'.发注金额) AS [Sum Of发注金额]
FROM tempTable' + convert(nvarchar,@sqlcur)
exec (@sqlt)
调用其他的存储过程得到@sqlcur
set nocount offdeclare @sqlt1 varchar(6000)select @sqlcur=ltrim(isnull(@sqlcur,''))select @sqlt1='SELECT
Sum(tempTable' + @sqlcur +'.加工金额) AS [Sum Of 加工金额],
Sum(tempTable' + @sqlcur +'.重量) AS [Sum Of 重量],
Sum(tempTable' + @sqlcur +'.发注金额) AS [Sum Of发注金额]
FROM tempTable' + @sqlcur
exec (@sqlt1)
rs.CursorLocation = adUseClient