我不行了!医生!

snowerhuayun 2003-10-16 01:49:12
CREATE PROCEDURE test AS

declare @sqlcur varchar(1000)
--通过调用子存储过程作为输出参数得到,每次得到的@sqlcur的值都可能不一样。
exec outputtemptable @sqlcur output

...
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中运行下面代码:
...
Dim rs As New ADODB.Recordset
rs.CursorType = adOpenDynamic
rs.CursorLocation = adUseClient
If rs.State = 1 Then rs.Close
rs.open "test",adocn 'adocn is connection string
if rs.recordcount=0 then
在执行到最后一句话时,提示错误“rs已经关闭”。

是不是因为我的存储过程中的select中含有变量@sqlcur,我该如何解决这个问题?
...全文
91 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowerhuayun 2003-10-16
  • 打赏
  • 举报
回复
To:邹建
恩人呐,行啦!
谢谢......................
zjcxc 2003-10-16
  • 打赏
  • 举报
回复
--存储过程问题:
CREATE PROCEDURE test AS
set nocount on --加上此句
declare @sqlcur varchar(1000)
--通过调用子存储过程作为输出参数得到,每次得到的@sqlcur的值都可能不一样。
exec outputtemptable @sqlcur output

...
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)
set nocount off --加上此句
snowerhuayun 2003-10-16
  • 打赏
  • 举报
回复
Lucky:
我试了,不行。
snowerhuayun 2003-10-16
  • 打赏
  • 举报
回复
adoCn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password = VOYAGER;Initial Catalog=ProductManagement;Data Source=192.168.0.46"
Lucky527 2003-10-16
  • 打赏
  • 举报
回复
adocn在哪定义的?
把它的定义和 Dim rs As New ADODB.Recordset 放一起
你试试
Lucky527 2003-10-16
  • 打赏
  • 举报
回复
和 @sqlcur 无关
sword281 2003-10-16
  • 打赏
  • 举报
回复

将你的得到的adocn代码写出来
liaorui 2003-10-16
  • 打赏
  • 举报
回复
在 rs.open "test",adocn 前面加上
set rs = new adodb.Recordset

1,216

社区成员

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

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