cn .ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
                   "DBQ=db1.MDB;" & _
                   "DefaultDir=" & CheckPath(App.path) & ";" & _
                   "UID=;PWD=;"
打开的ACCESS数据库 和 OpenDatabase(App.Path + "/*.mdb")有什么不同?

解决方案 »

  1.   

    前者是ADO处理,后者用DAO处理,不同方法比较如下:
    ——————————————————————————————————————    用Visual Basic访问数据库有许多可供选择的方案,但是选择那种方案更能使开发队伍和应用软件在今天处于有利位置并且适应将来的发展方向呢?这些解决方案各有什么特点?本文将说明这些问题,帮助使用VB5的用户和准备使用VB5的用户选择和决定哪种数据库访问方案对现在很有意义而且适应将来的应用程序。   当今,RDO2.0是Visual Basic访问关系型ODBC数据源的最佳界面接口,就如DAO/Jet是Jet和ISAM(顺序索引查找方法)类型数据源首选的访问接口一样。这两种方法都完整的集成于Visual Basic中,并且形成了Visual Basic核心的数据访问策略。RDO2.0的数据访问速度远快于RDO1.0的访问速度,并且RDO和DAO都已发展为相当成熟的技术。因此假如用户需要访问ODBC数据源,可以使用RDO;如果需要访问ISAM或Jet类型数据源,那么就使用DAO/Jet。   Active Data Objects(ADO)作为另一种可供选择的技术出现,正在逐渐代替其他数据访问接口。由于RDO同ADO的体系结构非常相似,因此当需要将RDO数据接口转换为ADO时,仍可以使用RDO设计的代码。  有人曾提出这样的问题:是否现在就使用ADO?虽然VB5使用ADO的数据访问接口是可能的,但对于目前ADO的使用状况,将RDO2.0或DAO3.5同ADO做比较显得意义并不很大。所以回答是:如果感觉方便,还是尽早转移到ADO,这意味着应用软件对各种数据访问接口将继续予以支持。ADO是独立于开发工具和开发语言的简单而且容易使用的数据接口,同ADO相比,其他数据访问接口都会黯然逊色。  所有的数据源都可以通过ADO来访问,在今天已逐渐成为现实。  VB访问数据库技术的历史综观过去的几年,使用Visual Basic的客户曾设计出数不胜数的程序和组件来建立商务解决方案。大约80%以上的应用程序是用来访问以下这些数据的:ASCII文本文件、SQL数据库以及大型机数据库。早期的Visual Basic数据访问工具只是简单的ASCII文件的访问工具,极少数SQL Server的前端应用程序是使用鲜为人知的数据接口VBSQL编写的。然而,在Visual Basic 3.0时代许多用户强调需转移访问包含远程数据源的ISAM数据,为此Microsoft设计了Microsoft Jet Database Engine(或简称为Jet)和Data Access Object(DAO),使得Visual Basic Access开发人员很容易地同Jet接口。直至前两年,对Visual Basic和其使用者的需求又包含了更快的访问远程数据和对ODBC数据源访问的优化。  当选择在此讨论的哪种技术是最佳技术时? 要注意两点:代码的重用和开发者实现选择的数据库访问方案的能力。设计者常常为实现或追求一种更特别的性能而使用有更多控件的奇异方案,这样设计出来的应用程序只会支持起来更复杂或维护时更困难。开发人员和他们的管理人员需要在Visual Basic的开发小组和各种数据库接口开发小组中注意避免这种趋势。这些小组协调努力简化VB5中的数据访问接口会使程序的安全性和速度更好。VB5也包含了全新的查询连接生成器,即User Connection设计器,它使用Visual Basic新的ActiveX设计器体系结构,对要编程的数据访问提供设计时的支持。允许在设计时创建连接并查询对象(基于RDO rdoConnection和rdoQuery对象)。并把这些连接和查询对象当作工程级对象。可预先设置属性、定义新属性和方法并给对象编写代码来捕捉事件。  这不仅为响应由连接和查询而引起的事件,而且为在运行时调用已有存储过程和用户定义的查询提供了简单的方法。使用User Connection设计器这种技术,代码可减少10倍,性能却没有任何损失。  现在用VB5来建服务器端组件或前端应用程序,可以使用的数据库接口方案至少有九种。每一种方案都可满足用户特定的需要,比如特殊的数据源和用户开发的技能等。  Visual Basic访问数据库的现状下面的表格列出了目前在VB5中有效的数据访问接口方法,一部分是简单的应用程序接口界面(APIs),但大部分是组件对象模型界面(COM)。这两类数据库接口界面事实上在任何一种开发语言中都包括。    接 口 界 面 访 问 对 象 16/32 ?支 持 
    VBSQL 通 过DB-Library 访 问 微 软 的SQL Server 16 位 和32 位 
    ODBC API 任 何 一 种ODBC 数 据 源 16 位 和32 位 
    DAO/Jet 本 地 的Jet/Access .MDB、 顺 序 索 引 数 据 库(ISAM) 和 任 何ODBC 数 据 源。 16 位 和32 位 
    DAO/ODBC Direct 任 何 一 种ODBC 数 据 源( 经 过RDO) 32 位 
    RDO 2.0 任 何 一 种ODBC 数 据 源(Level Ⅰ 或 Ⅱ) 32 位 
    ADO * 任 何 一 种ODBC 数 据 源 和 任 何 经 过OLE DB 界 面 接 口 的 数 据 源 32 位 
    *ADO不包括在VB5中,目前的许多网络产品支持ADO如:IIS、Visual Studio等,也会发行在VB的下一版本VB6中。   上表列出了用VB5程序代码访问数据库的几种接口界面,但是许多开发人员也使用一些数据库绑定的控件来实现一些简单重复的功能如:用户数据的输入、显示、筛选等接口界面。VB也支持对多种数据源访问的控件,这些控件在VB和COM界面接口之间起着媒介作用。这些控件提供了一种减少代码实现数据访问的途径,该方法简化了代码并使程序员不必亲自处理检索和更新数据的底层结构和机制。它赋予程序员很大的灵活性,因为可以使用同样的对象、属性和方法来处理各种不同的数据库格式。同时,如果从一种数据库格式变到另一种格式(例如,将本地的Microsoft Access数据库转换为网络上的SQL Server数据库),只需变动少量的代码就可以适应这种改变。甚至可以创建这样的应用程序,在单一的查询或报表中连接来自多个不同数据库的表。  数 据 绑 定 控 件 访 问 对 象 16/32 位 支 持 
    Data Control DAO/Jet 数 据 界 面 接 口 16 位 和32 位 
    Data Control/ODBC Direct DAO/ODBC Direct 数 据 界 面 接 口 32 位 
    RemoteData Control/RDC RDO 数 据 界 面 接 口 32 位 
    Advanced Data Connector/ADC * ADO 数 据 界 面 接 口 32 位 
    *ADO不包括在VB5中,目前的许多网络产品支持ADO如:IIS、Visual Studio等,也会发行在VB的下一版本VB6中。   经过数年发展,ODBC技术日臻完善已成为访问远程数据的主要方法,而Jet成为本地Jet和ISAM数据接口的首选方案。虽然这些方法在不同程度上有功能交迭的地方,在论证选用数据库访问的方法时,主要还应满足用户在特殊应用程序中对具体数据接口的访问。并不是所有人对数据访问中的一些缩写词都了解。下表从VB的观点简要介绍这些缩写词的含义和各种数据访问方法的功能比较。