《Delphi 5.x ADO/MTS/COM+ 高级程序设计篇》
Delphi 教程 系列书籍 (035) 《Delphi 5.x ADO/MTS/COM+ 高级程序设计篇》 网友(邦)整理 EMail: shuaihj@163.com
下载地址:
- 书名: Delphi 5.X ADO/MTS/COM+高级程序设计篇
- 作者: 李维
- 出版社: 机械工业出版社
- 书号: 7111084462
- 出版日期:2000年11月
- 开本: 787*1092 1/16
- 页码: 495
内容简介
本书是唯一深入讨论ADO、MTS和COM+的Delphi书籍。首先介绍了ADO的概念和功能以及如何撰写有效率的ADO应用程序;接着讨论了MTS的概念、技术和如何设计开发MTS应用系统。然后又讨论了COM+核心服务以及如何利用Delphi 5.x开发COM+应用系统。书中给出了大量范例程序,帮助你开发出最有效率的DNA应用系统。本书适用于Delphi程序员以及其他软件开发人员。
序言
Borland/Inprise是美国著名的软件厂商,它的产品系列包括:(1)开发工具类产品,如Delphi、C++Builder和JBuilder等;(2)企业级产品,代表性产品诸如企业级中间件VisiBroker和企业级应用服务器Application Server;(3)基于Linux的开发工具和中间件产品。在众多的产品中,当属Delphi最有影响力。近年来随着互联网的发展以及电子商务应用的兴起,如何开发分布式应用系统、如何开发Web应用、如何提高数据库的应用效率已成为开发者关注的焦点。“Delphi 5.x”系列丛书针对上述三个技术专题为读者提供了解决问题的方法。作者深入浅出地讲述了大型数据库工程的完整开发过程,并对技术难点提供了有效的解决方案。本书的作者李维先生是台湾Inprise公司的资深工程师,多年来一直从事Borland/Inprise技术研究,这套丛书融汇了作者多年系统研究的成果和丰富的开发经验。这套丛书共有三册:《Delphi 5.x分布式多层应用系统篇》、《Delphi 5.x分布式多层应用电子商务篇》和《Delphi 5.x ADO/MTS/COM+高级程序设计篇》(原名:《Delphi5.x高效率数据库应用系统篇》),已由北京宝兰一英博思信息技术有限公司的工程师改编成简体中文版,由机械工业出版社陆续出版。本书假设读者具有一定的Delphi使用经验。北京宝兰一英博思信息技术有限公司是Borland/Inprise公司在中国大陆的授权代理机构,负责向中国大陆地区用户提供Borland/Inprise公司全系列产品及其技术服务。这里向Delphi的使用者和爱好者特别推荐“Delphi 5.x”系列丛书,相信它一定会成为您的良师益友。
北京宝兰一英博思信息技术有限公司 www.inprise.com.cn
前言
我完成Delphi 5.x系列的两本书之后,突然觉得非常疲倦。因此实战系列的第三本书——《Delphl5.x ADO/MTS/CoM+高级程序设计篇》(原名:《Delphi 5.x高效率数据库应用系统篇》)的撰写工作也就不知不觉地停顿了下来。当然这有许多原因,最主要的是我不知道DelPhi书籍的市场是否能容纳下第三本Delphi的提高书籍。对于我而言,它只是一个兴趣,我希望我写的书能够帮助一些Delphi的程序员解决实际的问题;并 且有一定的销售量,不致于让出版商亏本或对于出版Delphi的提高技术的书籍意兴阑珊。因为我认为Delphi是一个非常优秀的开发工具,只可惜Delphi的技术手册不足,导致许多人无法充分发挥Delphi本身的功能,因此我希望我撰写的书籍能够让更多的人知道Delphi一些不为人知的先进功能。此外,市面上有许多的书籍都是以VB或VC++讨论许多Microsoft平台的技术。事实上,这些技术Delphi甚至可以发挥得更好,因此我也希望我撰写的书籍能够让大家知道如何在Microsoft平台中使用Delphi开发最强劲的Windows应用程序。当然,这个原因就是我之所以想撰写本书的动机,因为ADO和MTS/COM+都是Microsoft提倡的DNA架构中非常重要的关键技术。如果你在Windows平台上已经有开发应用程序的经验,并且知道Microsoft的DNA架构,那么你就必须了解ADO和MTS/COM+对象已经是每一个Windows平台下程序员必须熟悉和掌握的关键技术。未来的ADO一定会成为Windows平台下存取各种数据的标准,而MTS/COM+对象更是每一个Windows程序员必须真正掌握的概念,并且必须具备实现它们的实际技术。如果你是Delphi的程序员,那么你现在可能是使用BDE/IDAPI存取数据。但是我可以告诉各位,在不久的未来,ADO将如同现在的BDE/IDAPI一样重要,甚至比BDE/IDAPI更为重要,因为在Windows平台下使用ADO/OLE DB存取数据看起来已经是确定的趋势了。此外,你现在也可能仍然在Windows平台下开发主从架构或多层应用系统,但是在Windows 2000操作系统中,使用MTS/COM+对象开发应用系统也是程序员无法避免的方向。因为COM+已经成为操作系统的基本核心服务之一,所有Microsoft的相关软件也将围绕着COM+技术发展,例如IIs 5.o、Microsoft的AppCenter等。因此Delphi程序员也必须真正掌握MTS/COM+的技术。本书讨论的内容以ADO/MTS/COM+对象为主。ADO和MTS/COM+对象是 Microsoft提供的技术,Delphi原本就支持得很好,但是Delphi 5又提供了ADOExpress组件、MTS对象向导以及MTS数据模块向导等功能来帮助Delphi程序员开发使用ADO和MTS/COM+技术的应用系统,那么Delphi的程序员到底该直接使用ADO/MTS/COM+原生对象,以Microsoft的方式来开发应用系统,还是应该使用Delphi提供的功能来开发呢?此外,直接使用ADO和MTS/COM+技术和使用Delphi提供的功能在开发应用系统时又有什么不一样呢?我相信有许多人对于这些问题都非常困扰,也存在着疑惑。当然,上述的两种方式都可以用来开发应用系统,真正的问题只在于你是否思考过如何开发你想要实现的应用系统?也许先让我们看看VB和ASP的程序员如何使用这些技术来开发应用系统之后,再回到Delphi中思考一下是否有更好的方式来解决同样的问题。在许多市面上讨论VB和ASP的书籍中我看到一个现象,那就是如果要使用VB/ASP和MTS或Windows 2000的COM+来开发多层以及Web应用系统,那么通常这些程序员会在VB或VBScript稿本语言中建立并且呼叫MTS/COM+对象。然后再由MTS/COM+对象直接建立原生ADO对象,再通过ADO对象下达SQL命令从数据库中取得数据之后,传回到前端的VB/ASP应用程序中进行处理。在这些传递数据的过程中VB/ASP都是频繁地传递大量的原始数据以及异动的数据。这样的开发方式事实上有许多缺点,除了在传递和处理数据上没有效率之外,也可能无法充分使用到MTS/COM+提供的各种Pooling好处。此外,ADO是一组COM对象,所以程序员也必须使用原生的COM接口和API来撰写程序代码,不但辛苦,还易发生错误。并且对于复杂的数据,例如Master/Detail关系型态的数据,也非常不容易处理。因此这是为什么我很少在VB的书籍中看到如何使用ADO处理复杂型态数据的原因。现在再让我们回到Delphi,看看如何使用它来解决相同的问题。Delphi 5的ADOEx—press组件封装了ADO的功能,因此Delphi的程序员可以使用ADOExpress这组VCL组件来使用ADO技术,不但简单,而且不容易出错。另外,Delphi的MIDAS技术在分布式环境中正好提供了良好的封装数据的能力,能够在一个远程呼叫中封装多笔原始和异动的数据,并且能够封装关系复杂的数据。不但在撰写程序代码方面非常简易,不易出错,并且拥有较好的执行效率。更重要的是通过Delphi的MTS对象向导以及MTS数据模块向导,Delphi的程序员能够有很好的机会可以利用MTS/COM+提供的各种Pooling的好处。虽然经过了上面的解释,看起来使用Delphi提供的功能来开发应用系统似乎是比较好的选择,不过问题并没有这么简单。因为Delphi的程序员必须知道如何集成ADOExpress、MTS对象向导和MTS数据模块向导,以及MIDAS的技术,否则Delphi的程序员并不一定能够比VB/ASP或VC++程序员开发出更好的应用系统。Delphi的程序员必须以不同的角度来开发应用系统。这是什么意思呢?也许让我以一个小例子来说明你就可以知道了,不过我假设你已经阅读过《Delphi 5.x分布式多层应用系统篇》或了解基本的MIDAS观念。在Delphi的分布式多层应用系统中,客户端是通过连结到应用程序服务器中的远程数据模块来取得数据,这些数据是以MIDAS的数据封包封装的。客户端应用程序通过TDCOMConnection组件连结远程的数据模块,再通过TClientDataSet组件从远程数据模块中的TDataSetProvider组件取得需要的数据,这是Delphi的分布式多层应用系统的基本运作模型。但是在MTS/COM+分布式应用系统中,客户端的应用程序是建立执行在MTS或COM+核心中的对象来取得数据。而且根据MTS的要求,在MTS中建立的对象必须呼叫MTS中的Object Context对象的CreateInstance方法来建立MTS对象,而不能呼叫COM的CoCreateInstance方法来建立MTS对象(在本书中会详细说明)。但是Delphi的TDCOMConnection对象却是呼叫CoCreateInstance(CoCreateInstanceEx)来建立远程数据模块,所以Delphi的程序员不可以在MTS中使用TDCOMConnection组件连结远程数据模块。但是远程数据模块却提供MIDAS数据封包的组件,那么到底要如何在MTS中使用MIDAS呢?所以我在前面说Delphi的程序员必须以这些角度来开发应用系统,这样才能够正确地使用Delphi开发MTS应用系统。当然,除了正确之外,我们更需要执行效率,因此Delphi的程序员也必须从效率的角度来开发应用系统。当程序员使用ADO和MTS/COM+技术开发应用系统时,执行效率有许多不同的意义,也有许多方法可以调整执行效率。而且有许多的调整方法其功效是非常显著的。ADO在主从架构调整效率的方式和在多层应用系统中调整效率的方式是不一样的,因为这中间还存在有MIDAS。因此我在本书中会以许多篇幅来讨论如何调整效率,这主要是因为如果程序员没有了解如何调整MTS组件,以及正确开发/用MTS对象的方法,那么系统的执行效率便注定会非常不理想,这也是为什么许多人都说MTS的执行效率不好的原因。不过从本书的内容中你将会发现,我们可以很显著地提升MTS的执行效率,让它不比主从架构逊色多少。本书的内容将从介绍ADO开始,除了说明如何使用ADOExpress组件之外,还会详细地说明如何撰写有效率的ADo应用程序,并且会对许多AD0重要的功能详细说明。接着本书会进入MTS的范围,会详细讨论MTS的概念,MTS的技术以及如何正确而且有效率地开发和使用MTS。在讨论完MTS之后,本书会以实际的范例来说明如何设计和开发MTS应用系统。从这个范例中你将会看到,我把许多已经说明的MTS观念和技术使用在这个范例中,你也可以从这个范例中看到我们如何有效率地开发和使用MTS对象。让你能够同时印证MTS的原理,以及如何以实际的Delphi程序代码实现这些技术。本书也会讨论在Windows 2000中的COM+核心服务。虽然COM+对象可以说是MTS 2.0下一代的版本,但是COM+做了许多改善,使得原先在MTS中的限制都解除了。此外,COM+的执行效率也比MTS 2.0来得更好。由于MTS 2.0和COM+仍然有一些不同,而且许多原先在MTS 2.0中必须要注意的地方在COM+中也都已经由COM+核心帮助程序员处理,因此程序员在COM+中可以减少许多工作。这些限制的解除可以帮助Delphi的程序员更轻松地撰写COM+的应用系统。但是首先我们必须知道MTS和COM+的异同之后才能够知道使用什么方法来简化应用系统的开发。虽然本书不是专门介绍如何使用Delphi学习COM+的书籍(我真希望有这种书籍存在),但是你仍然可以从本书中了解一些COM+的基本概念,了解如何使用Delphi 5开发COM+应用系统,以及一些重要的COM+技巧。能够完成DelPhi 5.x系列丛书真是令我高兴的事情,这全赖许多爱护我书籍的读者的支持。当然我身边一群好友持续的鼓励也非常重要。我还是衷心地希望本书能够真正帮助所有的读者在使用Delphi开发ADo/MTS/COM+应用系统时,能够解决一些困难,顺利地完成系统。谢谢。令人高兴的是我知道Delphi 5.x系列的三本书籍都出了大陆简体版,可见Delphi在海峡两岸都受到专业软件开发人员的欢迎。我也要谢谢大陆相关人士对于Delphi 5.x系列书籍的帮助,让这三本书能够顺利地出版。当然也要谢谢大陆读者对于这些书籍的支持,能够让大陆的出版商放心地出版。大陆地大物博,能人异士众多,本人才疏学浅,本书若有疏漏之处也希望大家不吝指教。最后,我的老家是在山东益都,不知对岸的读者可有我的同乡呢?谢谢。
李 维 2000/7/16于新店
目录
第1章 ADO/MTS/COM十和分布式多层架构
1-1 认识ADO
1-2 使用原生ADO对象
1-3 ADO和分布式多层架构
1-4 Delphi的数据存取技术
1-5 原生ADO对象和ADOExpress组件
1-6 结论
第2章 撰写使用ADO技术的应用系统(一)
2-1 ADOExpress组件
2-2 数据库应用程序
2-3 Master/Detall应用程序
2-4 事务管理
2-5 BatchUpdate模式
2-6 搜寻数据
2-7 过滤数据
2-8 排序数据
2-9 结论
第3章 撰写使用ADO技术的应用系统(二)
3-l 处理多个数据表Join的数据
3-2 使用ADO处理BLOB信息
3-3 调用存储过程
3-4 使用ADO的异步执行能力
3-5 处理错误
3-6 使用ADO存取Excel
3-7 使用ADOx
3-8 RDS
3-9 使用ADO开发分布式多层应用系统
3-10 ADO和WebBroker应用程序
3-11 结论
第4章 深入了解ADO
4-l AD0的Cursor Engine
4-2 ADO修改数据的流程
4-3 ADOExpress和AD0
4-4 ADO和BDE/IDA贝
4-5 ADO的执行效率
4-6 优化ADO的执行效率
4-7 结论
第5章 MTS/COM+和分布式多层应用系统
5-1 什么是MTS
5-2 COM+COM的基本概念
5-3 MTS的系统架构
5-4 COM+的系统架构
5-5 状态对象和无状态对象
5-6 结论
第6章 MTS/COM+的核心技术事务管理
6-1 数据库事务管理
6-2 MTS/COM+事务对象
6-3 资源管理
6-4 MTS/COM+的事务生命周期
6-5 以程序代码自行控制事务管理
6-6 结论
第7章 MTS/COM+的安全机制
7-1 安全机制
7-2 MTS/COM+的角色
7-3 实现宣告式安全机制
7-4 资源鉴定控制
7-5 安全机制检查的时机
7-6 实际的范例
7-7 结论
第8章 设计MTS/COM+对象和MTS/COM+应用系统
8-1 开发MTS/COM+组件
8-2 开发存取数据的MTS/CoM+组件
8-3 较为复杂和实际的MTS/COM+应用系统
8-4 MT3/COM+的共享信息机制
8-5 管理和分发MTS/COM+应用系统
8-6 如何调试MTS/COM+应用系统
8-7 结论
第9章 以DeIphi技术开发MTS/COM+应用系统
9-l 一个典型的场景
9-2 使用TDCoMConnection建立MTS/COM+对象
9-3 维护事务管理的正确性
9-4 MTS/COM+应用系统架构的实现
9-5 第二种思考方式
9-6 结论
第10章 撰写高效率的MTS/COM+组件和MTS/COM+应用系统
10-1 你应该牢记的事情
10-2 快速建立和调用远程MTS/COM+对象
10-3 MTS/COM+对象和数据的传送
10-4 状态信息
10-5 结论