生活井井有条!
工作快快乐乐!
学习轻轻松松!
度过充实一生!
 
 
最 新 评 论
专 题 分 类
最 新 日 志
最 新 留 言
搜 索
用 户 登 录
    记住密码
用户注册 忘记密码
友 情 连 接
我 的 好 友
博 客 信 息
  • 日志:391
  • 评论:33
  • 留言:1
  • 访问:-


Delphi 2005 第15章 使用ADO | 2009/11/12 17:27:00
        读者在上一章中已经了解到,在最近几年,Borland的数据库无关性访问解决方案已经从“陈旧的” BDE技术(它大约有10岁)转向比较新的dhExpress体系结构。BDE更多地侧重于本地数据而dbExpress只支持关系数据库的事实明确地指出了一个行业趋势。
        同时,Microsoft。一直致力于推广它自己的数据库无关性访问解决方案,尽管Microsoft的“无关性”提议常常与本公司的数据库技术,比如 Access或SQL-Server有点密切相关。Microsoft从Open Database Connectivity(开放式数据库连接性,简称ODBC)开始起步,然后转向OLE DB(一个基于COM的解决方案)和 ActiveX Data Objects(ActiveX数据对象,简称 ADO),而现在一直使用 ADO.NET在.NET上重新加工这个体系结构。
        本章将具体关注比较陈旧但仍有生存力的 ADO解决方案,而且 DelPhi在Win32和.NET平台上均支持这个解决方案(在 DelPhi2005中,因为 DelPhi 8 for Mirosoft.NET Framework版本中没有这个特性)。通过使用VCL和ADO构件,本章所讨论的所有示例在.NET Delphi 2005 for Win32和 Delphi 2005 for.NET下都同样工作。要想了解具体的 ADO.NET讨论,请参见下一章。
注意
        笔者希望答谢和感谢最初为 《Masteri Delphi 6》(Sybex,2001)编写本章的Guy Smith-Ferrier先生。Guy是 《.NET Internatlonallastlon》(Andlson-Wesley,2005)的作者。他是Courseware Online的总课件设计师、一名 Microsoft Certrfed Professional开发人员、作者、培训讲师和演讲者,并且已经在欧洲和北关的许多学术会议上发表演讲。他是C#/.NET课件和大部分BOrland官方课件的创作者,其中包括关于 COM和 ADO的课件。Guy现在和他的妻子、儿子和女儿居住在英国。
       本章将通过使用dbGO来讨论ADO。(dbGO是一套Delphi构件,最初称为ADOExpress,但在  Delphi  6中改名为  dbGo,因为 Borland宁愿避免使用  Microsoft 的商标术语 ADO。在 DelPhi中,在没有使用 dbGO的情况下使用 ADO也是可能的。通过引入ADO类型库,程序员可以直接使用ADO接口;这也是Delphi程序员在Delphi 5发布之前使用ADO的方法。然而,这条途径绕过了DelPhi的数据库基础结构,并且不允许程序员利用其
他Delphi技术,比如数据敏感控件或Datasnap。本章将在所有示例中使用dbGo,不仅因为它是非常容易获得的,甚至在Delphi for.NET中也得到了支持,而且因为它是一个非常有生存力的解决方案。不管读者的最终选择是什么,都将发现本章中的信息是有用的。
        本章包括以下内容:Microsoft  Data  Access  Components(数据访问构件,简称MDAC)、Delphi的 dbGo、数据链接文件、获得模式信息、使用Jet引擎、事务处理、不连通与持久性记录集合、公文包模型以及部署MDAC。Microsoft数据访间构件(MDAC)由于 Component Object Model(构件对象模型,简称COM)的成功,Microsoft 于 20世纪90年代中期开始使用OLE DB取代ODBC。然而,OLE DB是 Microsoft归类为一个系
统级接口的东西,并且打算供系统级程序员使用。它是非常庞大、复杂而又不可容忍的。它对程序员提出了更高的要求,并且需要更高水平的知识,但换来的却是更低的工作效率。ActiveX Data Objects(ActiveX数据对象,简称 ADO)是OLE DB上面的一层,并称为一个应用级接口。它比OLE DB简单许多,并且是可容忍的。简单地说,它是被设计用来供应用程序员使用的。
        正如读者在第14章中看到的,Borland使用dbExPress替换了BDE。ADO与BDE共有的相似之处多于它与轻便型dbExpress技术共有的相似之处;然而,BDE和ADO支持数据集的导航和操纵、事务处理以及高速缓存的更新(在ADO中叫做批更新),因此使用ADO所牵涉到的概念和问题类似于BDE的概念和问题。
注意:本书不涉及BDE技术。但是,读者可以在 Essential Delphi中发现一个对BDE 的介绍(请参见附录 A中关于 Essential Delphi的讨论)。
 
        ADO是Mlcrosoft Data Access Components(Microsoft数据访问构件,MDAC)的一部分。MDAC是Microsoft数据库技术的一个保护伞,并且包括了 ADO、OLE DB、ODBC以及 RDS(Remote Data Services,远程数据服务)。读者将会经常听到人们交替地使用术语MDAC与ADO,但这是不正确的。由于ADO仅被发布为MDAC的一部分,所以我们需要MDAC版本的术语来谈论ADO版本。MDAC的主要版本有1.5、2.0、2.1以及2.5到2.8。Microsoft独立地发布MDAC,并且使它可供免费下载和实际免费分发(有一些分发要求,但大部分Delphi开发人员在满足这些要求方面将不会有任何麻烦)。MDAC还随同大部分带有各种数据库内容的 Microsoft产品一起分发。DelPhi 2005携带 MDAC2.8。
   
         这一级别的可获得性有两种结果。第一,用户很有可能已经请人把MDAC安装在他们的机器上。第二,无论用户拥有什么版本或者程序员把他们升级到什么版本,有人—程序员、用户或其他应用程序软件将把他们的现有MDAC升级到MDAC的当前版本实际上也是确定无疑的。程序员无法阻止这种升级,因为MDAC随同像Internet ExPlorer这样的常用软件一起得到安装。再加上这样一个事实:Microsoft只支持MDAC的当前版本与前一个版
本,因而程序员必然得出这样的结论:必须把应用程序设计成利用MDAC的当前版本或前一个版本。
        作为一名 ADO开发人员,读者应该定期地检查 Microsoft网站上的那些MDAC页面(www·microsoft.corn/data)。从那里,读者可以免费下载MDAC的最新版本。当到达这个网站上时,如果读者还没有 MDAC SDK  (15M),应该利用这次机会下载它,或者下载Platform SDK(MDAC SDK是 Patform SDK的一部分)。  MDAC SDK是各位的“圣经”:应该下载它,经常参考它,并使用它来解答ADO问题。在需要MDAC信息时,应该将它作为第一个信息源。
        OLE DB提供者
        OLE DB提供者能够提供访问数据源的途径。它们是等效于 dbExpress驱动程序的ADO驱动程序。在程序员安装 MDAC时,他们自动安装一系列 OLE DB提供者。表15.1 列出了这些OLE DB提供者当中的一部分:
        · ODBC OLE DB提供者用来提供与ODBC的向下兼容性。随着读者对  ADO了解的逐 渐深人,将会发现这个提供者的局限性。
        · Jet OLE DB提供者支持 MS Access及其他桌面数据库。稍后,我们将会返回来讨论这些提供者。
        · SQLServer提供者支持 SQL Server 7、SQLServer 2000和 Microsoft Database Engine(MSDE)。MSDE是SQL Server的精简版本,去除了大部分的工具,而且当超 过5个活动连接时,会添加一些代码故意降低性能。MSDE之所以重要,是因为它 是免费的,并且它与SQL Server是完全兼容的。
          除了这些 MDAC OLE DB提供者,Microsoft还随同其他产品或可下载 SDK提供了其他OLE DB 提供者。
         例如: Active Directory Services OLE DB提供者与 ADSI SDK包含在一起;AS/400和VSAM OLE DB提供者与SNA Server包含在一起;
         Exchange OLE DB提供者与MirosoftExchange2000包含在一起;用于Intern。tPublishing的(JI-EDB提供者允许开发人员使用HTTP来处理目录与文件。
         还有更多的 OLE DB提供者以“服务提供者”的形式出现。正如它们的名称所暗示的,OLE DB服务提供者给其他 OLE DB提供者提供一种服务。通常,这些服务提供者在必要时自动得到调用,无需程序员进行干预。例如,Cursor Service在程序员创建一个客户端游标时得到调用,而 Persisted Recordset提供者被调用以局部地保存数据。
         MDAC包含了我们将要讨论到的许多提供者,但是还有更多的提供者可以从  Microsoft或第三方市场上获得。可靠地列出所有可以获得的 OLE DB提供者是不太可能的,因为这个列表将会非常巨大,而且会经常变化。除了独立的第三方之外,还应当考虑大多数的数据库供应商,因为这些数据库供应商的大多数现在提供它们自己的 OLE DB提供者。例如,Oracle提供ORAOLEDB提供者;
表15.1 MDAC中包含的部分OLE DB的提供者

驱动程序

提供者

描述

MSDASQL ODBC Drivers ODBC 驱动
Microsoft.Jet.OLEDB.4.0 Jet 4.0 MS Access 与其他数据库 
SQLOLEDB SQL Server SQL Server 驱动
MSDAORA Oracle Oracle 驱动
SampProv Sample CSV 文件驱动
 

        提供者CSV义件的()IE DB提供者的一个示例提示在提供OLE DB提供者的供应商当中,一个值得注意的遗漏是 InterBase。除了使用ODBC驱动程序访问它之外,还可以使用DTnitry Kovalenko的IBProvder
     (www.lop。 llpetsk.ru/prog/eng/index.html)。另外,请检查 Binh-y的 OLEDB提供者开发工具箱(www.techvanguards.corn/products/optk)。如果读者需要编写自己的(OLE DB提供者,这个工具使用起来比其他大多数工具容易。使用dbGO构件 熟悉dbExpress或IBExpress的程序员应该认识构成dbGo的这组构件。表15.2比较了ADO构件与dbExpress等效构件

阅读全文 | 回复(0) | 引用通告 | 编辑 | By: 皮皮爸爸
  • 标签:Delphi 
  • 发表评论:

      大名:
      密码: (游客无须输入密码)
      主页:
      标题:
      粗体 斜体 下划线 插入引用 插入表情
    Powered by Oblog.