- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章使用数据控件-Read.doc
第14章 使用数据控件
组件面板的Data Controls属性页包含了VCL控件(其中有一个TFieldDataLink辅助对象)。TFieldDataLink允许数据控件被连接到一个DataSource。DataSource是连接控件(和用户交互的)和dataset(和数据交互的)的桥梁。
数据感知Social Security(社会安全)号码是九位数字并且其格式为###-##-####。编写一个包含Social Security 号码的应用程序可能包括定义一个格式规则和一个确认检查以确保每一个元素要么是十进制数字要么是短划线。格式规则和确认检查约束了一个数据是或者不是一个Social Security号码。定义数据怎样被约束的规则是组成一般术语商务规则的一部分。
有三个地方可以放置商务规则:数据库、中间层或者客户层。当约束被放置到在客户层中时,客户端被叫做胖客户端。胖客户端应用程序通常是两层的。当规则被放置到数据库层的时候——例如使用触发器、数据约束和存储过程和视图——这就被叫做胖服务器。这种应用程序也是两层应用程序。当定义一个分离的中间层并包含商务规则时,我们称这种应用程序为三层应用程序。
数据控件支持胖和瘦客户端、胖和瘦服务器以及两层的和三层的开发。数据控件允许您在特性中将格式约束和在事件中的其他商务逻辑(如TDBEdit控件中的OnChange事件)联合起来。Delphi企业版捆绑了MIDAS(Multitier Distributed Application Services Suite,多层分布式应用程序服务组)组件,这方便了创建中间层,并且大多数RDBMS(Relational Database Management Systems,关系数据库管理系统)服务器都有过剩的约束数据的方法。在哪里放置约束依赖于您正在使用哪种类型的设计。本章我们将介绍数据控件和与它们相关的TField对象,列举控件和它们的特性和事件,这些特性和方法对数据怎样被管理的商务规则的定义提供了方便(第15章介绍建立瘦客户端、三层应用程序)。
14.1 简述两层和三层设计
两层应用程序开发使用一个客户端应用程序和一个数据库服务器。三层应用程序开发使用一个客户端应用程序、一个定义商务逻辑的服务器应用程序和一个第三数据库服务器层。中间层可以是一个或者更多的服务器应用程序,客户端层使用这些应用程序和数据库层对话。
通常在编程过程中一个很好的规则是将数据约束放置到与数据库尽可能近的地方,原因可以通过特性工作的方式来说明。从外面看,特性像数据;对用户透明的是特性有用于读和写数据的访问方法,该数据约束了当前字段的一些使用。
在数据附近放置约束就是将规则与数据绑定在一起。胖客户端应用程序包含商务规则。您每一次想在该客户端的其他位置上访问数据的时候,您必须复制这个规则,该规则约束了数据被使用的方式。这样您就有了许多代码重复了同样的规则,换句话说,同时需要写、测试和维护更多的代码。RDBMS被定义为与其他一些客户端应用程序一起使用,这使得人们可以使用类似于Microsoft Access的应用程序来修改数据。如果商务逻辑驻留在您的客户端应用程序中,那么约束就不会被其他客户端应用程序误用。
胖服务器的设计在服务器上放置了商务规则。当胖服务器的设计仍然可以在两层应用中使用时,商务规则要临近数据,从而减少被其他客户端应用程序误用的可能性。另一个好处是:定义一个胖服务器意味着只要给每一部分数据定义商务规则一次。很有趣的是,似乎现有的胖客户端应用程序比胖服务器要多;这种情况的存在可能是因为程序员也创建数据库。
通过在胖服务器设计中添加中间层使您可以更大程度地控制怎样访问数据库和控制客户端应用程序类型增加的数量和种类;任何附加的商务规则在数据库服务器层中定义时看起来很不自然,它可以被定义到中间层。使用单独的中间层还意味着不同类型的多客户端可以同时重新使用同样的中间层。权衡一下来看,胖客户端、两层应用程序看起来更便于开发。使用数据库约束、触发器、存储过程和视图要求有一个熟练掌握所选择的RDBMS的数据库开发人员。要设计面向对象的中间层建议要有一个面向对象的体系结构以获得其携带的中间层。很不幸的是,许多软件工程只能由程序员和管理人员来完成,这可能说明了胖客户端、两层设计的卓越实现。问题是,是不是胖客户端、两层应用程序的开发更廉价呢?答案可能是不。它们表面上很廉价是因为数据库和客户端用于程序会很快出台,但是最终它们将变得很笨拙。在开发的开始所得到的将在开发的后期永远地失去。
是不是胖服务器、三层应用程序的开发更廉价呢?通常这些应用程序要求更高报酬的设计师和数据库分析员、在设计的开始阶段需要更多的时间和一个组织得很好的流程。传统的应用程序不同于新型的应用程序:对象模型和数据库
文档评论(0)