2007-03-30

关于SQL Server业务规则链接技术探讨

来源: 本站收集整理 作者:佚名 评论 0 条
 

列表C:

CREATE PROCEDURE usp_Rule1 (@RunSequence TINYINT)

AS

      PRINT 'In Procedure: '   OBJECT_NAME(@@PROCID)

      PRINT 'Parameter Value Passed In:'   CAST(@RunSequenceAS VARCHAR(2))

GO

CREATE PROCEDURE usp_Rule2 (@RunSequence TINYINT)

AS

      PRINT 'In Procedure: '   OBJECT_NAME(@@PROCID)

      PRINT 'Parameter Value Passed In:'   CAST(@RunSequenceAS VARCHAR(2))

GO

CREATE PROCEDURE usp_Rule3 (@RunSequence TINYINT)

AS

      PRINT 'In Procedure: '   OBJECT_NAME(@@PROCID)

      PRINT 'Parameter Value Passed In:'   CAST(@RunSequenceAS VARCHAR(2))

GO

CREATE PROCEDURE usp_Rule4 (@RunSequence TINYINT)

AS

      PRINT 'In Procedure: '   OBJECT_NAME(@@PROCID)

      PRINT 'Parameter Value Passed In:'   CAST(@RunSequenceAS VARCHAR(2))

GO

接下来就是处理业务规则的代码了。在列表D中,我用一个指针在表格中迭代,该表格中的记录都保存着元数据。当可以用一种不同的循环结构来完成同一个逻辑时,用指针要简单一些。不管是怎么样完成的,都需要用某种类型的迭代循环和执行所需要的业务程序。运行这个代码将执行每一个文章前面所定义的四个存储过程。

列表D:

DECLARE @LogicProcedure VARCHAR(255)

DECLARE @RunSequence TINYINT

DECLARE LogicCursor CURSOR 



FOR 



SELECT LogicProcedure, RunSequence FROM BusinessLogic 

WHERE 

      ProcessType = 'CustomerOrders' AND

      BusinessLogicActive = 1

ORDER BY RunSequence ASC



OPEN LogicCursor 

FETCH NEXT FROM LogicCursor 

INTO @LogicProcedure, @RunSequence



WHILE @@FETCH_STATUS = 0 

BEGIN 

      EXECUTE @LogicProcedure  --//Call procedure stored in variable

      @RunSequence = @RunSequence  --//Pass in parameter

      PRINT '-----------------------------'

FETCH NEXT FROM LogicCursor 

INTO @LogicProcedure, @RunSequence

END 



CLOSE LogicCursor 

DEALLOCATE LogicCursor 

GO

在列表D中,有两个主要引人注重的地方。第一个就是用来从表格中检索记录的select语句,所检索的记录中包含了处理业务规则的信息。从这个简单的查询中,我可以为任何类型的业务处理从BusinessLogic表中返回行。我还能保证规则是活动的,并且按照它们需要执行的顺序返回。

第二个就是执行业务规则的方式。当指针迭代时,它从BusinessLogic表中检索将要被执行的存储过程的名称,然后将其储存在一个逻辑变量中。EXECUTE命令答应用户执行存储过程,即使该存储过程的名称被储存在一个变量中。在这种方式下,调用存储过程还使得我能够向存储过程中输入所需的参数。

这使我回到了先前关于业务程序具有相同数量的输入参数这一点。我能够以一种相当动态的方式运行业务程序,这取决于在程序运行时BusinessLogic表中储存了什么。但是,现在我还没有一种方法可以动态地向业务程序输入参数。
共3页: 上一页 [1] 2 [3] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:SQL Server和Oracle并行处理比较分析  
下一篇:教你在SQL Server中由原子建立分子查询
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号