关于存储过程返回值的问题!!!在线等待

morinson 2003-08-20 07:11:18
CREATE PROCEDURE dbo.abc AS
insert into TC_TempInvoice (InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent)
values('1','UserName',space(30),'Address','101','@sUserNumber')
select InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent from TC_TempInvoice
GO
我写了一个小小的存储过程,如上所示,先往表中插入一行,再将表中的数据提取出来,此过程在查询分析器中工作正常,但是在VB中我用命令对象调用时,却不能返回结果集,VB中的调用代码如下:
Dim adoChargeAffirmMonth As ADODB.Recordset
Dim cmdChargeAffirmMonth As ADODB.Command
Set cmdChargeAffirmMonth = New ADODB.Command
Set cmdChargeAffirmMonth.ActiveConnection = db
cmdChargeAffirmMonth.CommandType = adCmdStoredProc
cmdChargeAffirmMonth.CommandText = "abc"
Set adoChargeAffirmMonth = cmdChargeAffirmMonth.Execute
希望高手帮忙指点。。。。。

说明,1、db为本人建好的Connection
2、不能返回结果集的原因可能在存储过程中的insert语句,因为在不用insert语句时一切正常

希望能指点此存储过程的正确写法!!!!insert语句我是一定要用的,因为在实际的系统中这是个很复杂的存储过程,我已对其经过简化,为的是使用大家很好的着眼于问题所在

或者换一种简单的说法,我就是想知道当要在存储过程中使用DML语句,且要返回结果集时怎么写!!!
...全文
29 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
morinson 2003-08-20
  • 打赏
  • 举报
回复
好了,我试过了,现在问题解决了,先谢谢各位的热心帮助了

上面有几个答案,先对其进行点评一下:
1、其中除了pengdali(大力 V2.0)以外,可能其它几位朋友还没有领会我的问题,给出的答案都不正确,难道各位没有看到,在我的insert语句后面,不是已有了select语句吗?
2、hjb111(唐老鸭)兄弟给的第二种方法,是属于在VB中折衷的策略,也可以用,不过不是我的目的,因为问题没有解决
3、只有pengdali(大力 V2.0)知道如何解决,他的答案很正确,谢谢,我查了帮助,NOCOUNT参数使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息
这样一来,在SET NOCOUNT ON的时候就不会把insert的结果信息发送给客户端,而在进行完操作,将SET NOCOUNT OFF的时候就可以返回我要的结果了

在此再次感谢各位朋友的帮助,特别是pengdali(大力 V2.0),看来他是一位经验丰富的开发人员,我将以各位答案的有效性来分得分
pengdali(大力 V2.0) 80
caiyunxia(monkey) 10
hjb111(唐老鸭) 10

pengdali 2003-08-20
  • 打赏
  • 举报
回复
CREATE PROCEDURE dbo.abc AS
SET NOCOUNT ON
insert into TC_TempInvoice (InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent)
values('1','UserName',space(30),'Address','101','@sUserNumber')
SET NOCOUNT OFF
select InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent from TC_TempInvoice
GO



就可以了。
caiyunxia 2003-08-20
  • 打赏
  • 举报
回复
CREATE PROCEDURE dbo.abc AS
insert into TC_TempInvoice (InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent)
values('1','UserName',space(30),'Address','101','@sUserNumber')
select InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent from TC_TempInvoice
SELECT * FROM TC_TempInvoice
hjb111 2003-08-20
  • 打赏
  • 举报
回复
CREATE PROCEDURE dbo.abc AS
insert into TC_TempInvoice (InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent)
values('1','UserName',space(30),'Address','101','@sUserNumber')
select InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent from TC_TempInvoice
select * from Tc_tempInvoice where 条件
GO
或者:
再加此条语句:
cmdChargeAffirmMonth.CommandText = "select * from Tc_tempInvoice where 条件"
Set adoChargeAffirmMonth = cmdChargeAffirmMonth.Execute
caiyunxia 2003-08-20
  • 打赏
  • 举报
回复
CREATE PROCEDURE dbo.abc AS
insert into TC_TempInvoice (InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent)
values('1','UserName',space(30),'Address','101','@sUserNumber')
select InvoiceType,Content1,Content2,Content3,ItemNumber,ItemContent from TC_TempInvoice
SELECT * FROM TC_TempInvoice
morinson 2003-08-20
  • 打赏
  • 举报
回复
加到那里呢?你能不能把这个语句加到上面那个小存储过程的适当的地方,我就可以试试

谢谢
caiyunxia 2003-08-20
  • 打赏
  • 举报
回复
在过程中家
SELECT * FROM TABLE

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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