看一眼这一小段存储过程吧!

snowerhuayun 2003-10-15 05:46:22

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,我该如何解决这个问题?
谢谢了先!

...全文
36 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
suntt 2003-10-16
  • 打赏
  • 举报
回复
你重新定义rs
set rs=new recordset
snowerhuayun 2003-10-16
  • 打赏
  • 举报
回复
收功。
snowerhuayun 2003-10-16
  • 打赏
  • 举报
回复
@sqlcur 是自定义的变量,经过计算得出相应的值。
关于@sqlcur的实际代码如下:
declare @sqlcur varchar(1000)
exec outputtemptable @sqlcur output
通过调用子存储过程作为输出参数得到,每次得到的@sqlcur的值都可能不一样。
yoki 2003-10-16
  • 打赏
  • 举报
回复
另外rs.open "test",adocn 前加上
rs.CursorLocation = adUseClient
yoki 2003-10-16
  • 打赏
  • 举报
回复
CREATE PROCEDURE test AS

set nocount on
调用其他的存储过程得到@sqlcur
set nocount off

declare @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)
snowerhuayun 2003-10-16
  • 打赏
  • 举报
回复
to:hansha

我试了,但还不行,在帮我想一想啊。
wangxianzhi 2003-10-16
  • 打赏
  • 举报
回复
上面的变量最好还加上去空格函数!rtrim(@sqlcur)
wangxianzhi 2003-10-16
  • 打赏
  • 举报
回复
你是通过字符串组合的的SQL语句 所有当字符串相加时你要把其中的变量也转换成
字符串其它地方是不是有语法问题你自己去想这种写法我是写得最多的,相信我呀!

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)
snowerhuayun 2003-10-16
  • 打赏
  • 举报
回复
没人说话,帮我啊----
yoki 2003-10-15
  • 打赏
  • 举报
回复
if rs.recordcount=0 then
--〉
if not rs.eof then
if rs.recordcount=0 then ...
end if
knikcn 2003-10-15
  • 打赏
  • 举报
回复
rs.open "test",adocn
你看看是不是"test"问题
yoki 2003-10-15
  • 打赏
  • 举报
回复
@sqlcur是什么东东?
传入的参数么?
对应的1,2,3然后查询对应的表table1,table2,table3之类 ??
zybhappy 2003-10-15
  • 打赏
  • 举报
回复
@sqlcur 是变量还是参数?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧