首页 > 其他 > 详细

1-0SBO学习心得(存储过程理论)

时间:2014-07-07 20:22:49      阅读:590      评论:0      收藏:0      [点我收藏+]

一、原理:系统中每张单据在进行新增(A)、删除(D)、修改(U)、关闭(L)、取消(C)时都会触发数据库相应业务数据的更新,更新数据但不立刻commit,更新完数据后会先触发一个名为SBO_SP_TransactionNotification的存储过程,存储过程返回名为@error的参数,取1或者0。当返回0时表示正常,系统继续commit操作;当返回1时表示不正常,数据库回滚,操作无效。

该存储过程代码如下:

USE [DFKJ_TEST]
GO
/****** Object:  StoredProcedure [dbo].[SBO_SP_TransactionNotification]    Script Date: 06/28/2014 12:20:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SBO_SP_TransactionNotification] 

@object_type nvarchar(20),                 -- SBO Object Type
@transaction_type nchar(1),            -- [A]dd, [U]pdate, [D]elete, [C]ancel, C[L]ose
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255),
@list_of_cols_val_tab_del nvarchar(255)

AS

begin

-- Return values
declare @error  int                -- Result (0 for no error)
declare @error_message nvarchar (200)         -- Error string to be displayed
select @error = 0
select @error_message = NOk

--------------------------------------------------------------------------------------------------------------------------------

--    ADD    YOUR    CODE    HERE

--------------------------------------------------------------------------------------------------------------------------------

-- Select the return values
select @error, @error_message

END
服务器会给这个存储过程传5个参数,分别是:
@object_type nvarchar(20), --操作的单据编号
@transaction_type nchar(1),--操作类型 [A]dd, [U]pdate, [D]elete, [C]ancel, C[L]ose
@num_of_cols_in_key int,   --待操作数据表的主键个数
@list_of_key_cols_tab_del nvarchar(255),--主键名称,如果有多个主键,以“;”分割
@list_of_cols_val_tab_del nvarchar(255) --主键值,以“;”分割。
这是在这个存储过程中我们唯一能抓到的参数,控制逻辑就要运用到这些参数。
读代码可以发现默认情况下@error的取值是0,我们可以在bubuko.com,布布扣这个位置加入代码来进行相应的控制。
 

1-0SBO学习心得(存储过程理论),布布扣,bubuko.com

1-0SBO学习心得(存储过程理论)

原文:http://www.cnblogs.com/dfkjerp/p/3813227.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!