SQL Server业务规则链接技术探讨(2)

2008-04-02 11:01:31来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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表中储存了什么。但是,现在我还没有一种方法能够动态地向业务程式输入参数。

一种简单的解决办法就是确保任何的业务程式接受相同数量的参数,不管用不用他们。这种技术确保我们始终为业务程式提供所需的参数。也有其他的方法能够实现这些所需参数的输入,但是那些不是这篇文章所要讨论的。

扼要重述

假如您的应用程式在数据库中储存他的任何一个或全部业务逻辑,那么有可能他就是被我称作业务规则链接的一个候选者。这种方法允许存储过程在数据库中依次运行,并且让您能够在需要的时候打开或终止这些业务规则。使用这种方法的一些潜在缺陷包括数据安全(执行业务程式的数据储存在一个表格中),和向业务逻辑程式输入参数的非动态性。假如您觉得对于您的业务问题来说,这种方法利大于弊的话,我鼓励您尝试一下这种方法。


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: sql server 带列名导出至excel

下一篇: SQL Server数据库中空值处理技巧

IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设

网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源

网站联盟: 联盟新闻 联盟介绍 联盟点评 网赚技巧

行业资讯: 搜索引擎 网络游戏 电子商务 广告传媒

网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它

服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护

软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷

网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash

程序设计: Java技术 C/C++ VB delphi

网络知识: 网络协议 网络安全 网络管理 组网方案 Cisco技术

操作系统: Win2000 WinXP Win2003 Mac OS Linux FreeBSD

热门词条
最新资讯
热门关注
热门标签