Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Visual C++ > ADO和OLE-DB棗同一问题不同层次的解决方案
【标  题】:ADO和OLE-DB棗同一问题不同层次的解决方案
【关键字】:ADO,OL,DB,OLE,AD,ADO,OLE,DB
【来  源】:网络

ADO和OLE-DB棗同一问题不同层次的解决方案

Your Ad Here     使用ADO时一件让人困惑的事是,需要理解它不是数据库访问的底层解决方案。OLE-DB是使用ADO的基础;它也提供与数据库通信的基础。ADO只是OLE-DB提供的服务的漂亮包装。事实上,如果你愿意,甚至可以绕过ADO而直接使用OLE-DB。但是,使用ADO开发应用程序的速度要快得多。下面的章节会帮助你理解OLE-DB和ADO。
    理解OLE-DB
    那么,OLE-DB是什么呢?顾名思义,它用OLE(或者更具体一点,是部件对象模型棗COM)为数据访问提供一套接口。就像任何其它的COM对象一样,可以查询、创建和撤销一个OLE-DB对象。OLE-DB对象的来源被称为提供者。你会得到各种OLE-DB提供者,它们是Visual C++软件包的一部分,也有可能在厂商升级其数据库产品时提供。OLE-DB的好处是,同一个提供者可以和任何Visual Studio产品协作:Visual C++,Visual Basic,Visual InterDev和Visual J++。
    OLE-DB还依赖于事件,这和任何COM对象一样。这些事件说明什么时候要求更新数据库表,以显示其它用户生成的新项,或者你所请求的表什么时候准备好供查看。还会看到这样的事件,它们用来发送信号通知各种数据库错误和其它要求马上轮询的活动。
    Microsoft定义了OLE-DB用户的四个主要类型。下面将各组予以分解,从总体上说明它们是如何帮助使用OLE-DB的。
    数据提供者 用OLE-DB SDK(软件开发工具箱)创建OLE-DB提供者的人。提供者用户与数据库和事件交互作用,发信号通知特殊事情的发生。
    数据消费者 要求访问包含在数据库中的信息的应用程序、系统驱动程序或用户。
    数据服务提供者 创建用以增强用户或管理员使用或管理数据库内容能力的独立实用程序(服务)的开发者。例如,开发者可以创建查询引擎,允许用户用自然语言请求数据库中的信息。服务和OLE-DB提供者互相协作,成为一个整体。
    商务部件开发者 创建应用程序模块或部件,以减少创建数据库应用程序所需的编码量的开发者。部件可能和网格控件一样通用,可以快速地显示数据库中记录的子集,或者显示正被访问的数据库类型的专用信息。
    那么,OLE-DB和ODBC有什么不同呢?表4.1说明了这两个产品间的主要差别。我们会在本章的“应该在什么时候使用OLE-DB、ADO或ODBC?”一节中讨论这些差别是如何影响你的使用决定的。
    不要认为OLE-DB和ODBC是两种完全分离、可以互相替换的技术。ODBCOLE-DB提供者允许你通过OLE-DB或ADO 访问ODBC提供的所有功能。换言之,这两种技术是互补的,不能完全互相替换。可以用ADO或OLE-DB替换ODBC吗?可以,但如果这样做了,将得不到最佳的应用程序性能。OLE-DB的整体作用是,拓宽可以用Visual C++应用程序访问的数据库类型的范围。很明显,如果确实要用单个应用程序访问ODBC和列表数据,那么OLE-DB为此提供了较好的解决办法。
    理解ADO
    现在你对OLE-DB比较熟悉了,那么ADO适合在哪里使用呢?如前所述,ADO为访问OLE-DB提供者的功能提供了一种容易的方法。换言之,ADO允许你快速地创建应用程序,允许Visual C++处理你在直接使用OLE-DB时通常应考虑的一些细节。我已经在第一章关于ADO数据连接的章节中提供了关于ADO特征的概述,这里就不再讨论了。

    与OLE-DB一样,ADO也是基于COM的。它提供了一个双重接口:对本地操作是ADODB的程序ID,对远程操作是ADOR的程序ID。虽然注册表像使用分室线程模型那样显示ADO线程,但ADO库本身是种自由线程。ADO的线程安全依赖于你所使用的OLE-DB提供者。换言之,如果使用Microsoft的ODBC OLE-DB提供者,不会有任何问题。如果使用第三方的OLE-DB提供者,要在假定ADO线程安全之前检查厂商的文档(这是在Internet或企业网连接上使用ADO时的要求)。
    使用ADO时会用到七个不同的对象。表4.2列出了这些对象,并描述了它们的使用方法。虽然ADO对象的功能层次要比先前技术提供的层次高得多,但其中多数对象类型是Microsoft已引进的其它技术的复制品。我们会在本章的概述一节更为详细地讨论ADO的类。
    注释 一些ADO对象由接口而不是由实际类来表示。表4.2还说明了对象的关联关系,它帮助你理解如何导出并非由Visual C++类直接表示的对象。

什么时候应该使用OLE-DB,ADO或ODBC:【上一篇】
什么是ODBC:【下一篇】
【相关文章】
  • 什么时候应该使用OLE-DB,ADO或ODBC
  • Visual C++ ODBC,OLE-DB及ADO类概述
  • 使用ODBC建立数据库应用程序
  • 使用OLE-DB或ADO建立数据库应用程序
  • 什么是ActiveDocument(OLE文档对象)
  • 一个Win32的ODBC封装函数集,支持SQL Server和Oracle ODBC3.0
  • 直接通过ADO操作Access数据库
  • DTX - Database Toolbox For MFC Ver 1.8 (Freeware Version)
  • 学习ADO时总结的一些经验
  • Visual C++中的ODBC编程实例
  • 【随机文章】
  • 企业抉择:ERP仓储模块Vs专业WMS软件——经营战略
  • J2ME学习笔记(6)
  • ◆ 成为编程高手的八大奥秘 (转贴) ◆
  • rpm命令的常用用法及命令选项
  • 顿悟:醍醐灌顶的感觉
  • 我被外公点名了......
  • Dreamweaver 中怎样使用模板
  • ISA教程 附录A 各章的问题和答案(2)
  • 红包的故事 update
  • Cool commands
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.