以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  Foxtable如何接收存储过程中的返回值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=46521)

--  作者:jspta
--  发布时间:2014/2/25 10:19:00
--  Foxtable如何接收存储过程中的返回值
Foxtable如何接收存储过程中的返回值

return @P1

如何获得这个@P1的值?

--  作者:Bin
--  发布时间:2014/2/25 10:21:00
--  
没有办法,只能以表的方式放回.
--  作者:ysq128
--  发布时间:2014/3/4 9:09:00
--  
得不到return,那做SQL事务。那怎么判断是SQL正常执行了。还是回滚了呢。
USE [webapp]
GO
/****** 对象: StoredProcedure [dbo].[Pr_Order_Edit] 脚本日期: 03/04/2014 08:40:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Pr_Order_Edit]
@order varchar(255),
@editor varchar(255),
@ordercount int
as
BEGIN TRAN --开始事务
BEGIN TRY
--update xx_order set [editor]= @editor where [editor] =0
update xx_order set [editor]= @editor where id = 31

IF(@@rowcount <> @ordercount)
BEGIN
ROLLBACK TRAN --回滚
return -11;
END
COMMIT TRAN --提交事务
return -11;
END TRY
BEGIN CATCH
ROLLBACK TRAN --回滚
return -7 ;

END CATCH;


--  作者:Bin
--  发布时间:2014/3/4 9:13:00
--  
返回单个值可以
Dim  val As Integer
 Dim cmd As New SQLCommand
 cmd.CommandText = "Exec 存储过程"
 val  = cmd.ExecuteScalar() 

--  作者:ysq128
--  发布时间:2014/3/4 9:38:00
--  
Dim cmd As New SQLCommand
Dim val As Integer
cmd.C
cmd.CommandText ="exec Pr_Order_Edit \'1\',\'88\',\'1\' "
val  = cmd.ExecuteScalar() 
output.show(val)


执行后。无论是正常运行还是说回滚了。都是同一个值0
如果直接输出output.show(cmd.ExecuteScalar() )是空白的。
是我存储过程写得有问题还是什么问题。

--  作者:Bin
--  发布时间:2014/3/4 9:39:00
--  
你返回的不能够是参数
--  作者:ysq128
--  发布时间:2014/3/4 9:42:00
--  
那有参数。我要知道判断是SQL正常执行了。还是回滚了。有什么办法吗?
--  作者:Bin
--  发布时间:2014/3/4 9:43:00
--  
没办法,更改一下存储过程,返回单个值,或者以表的形式返回.
--  作者:ysq128
--  发布时间:2014/3/4 9:47:00
--  
表的形式返回.怎么讲?
语句是update的。
存储过程怎么把需要返回的值转换成表的形式呀。

--  作者:Bin
--  发布时间:2014/3/4 9:49:00
--  
让写存储过程的人给你改一下.