以文本方式查看主题 - 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 -- 让写存储过程的人给你改一下. |