Database 版 (精华区)
发信人: mm (绿色的梦), 信区: Database
标 题: 使用VB5开发客户/服务器应用程序(二)
发信站: 紫丁香 (Thu Oct 30 20:21:46 1997)
二 访问ODBC数据的两条途径
用 DAO 访问 ODBC 数据源有两种不同的方法:
* Microsoft Jet 数据库引擎
* ODBCDirect
Microsoft Jet 提供了很多功能。它处理建立和管理连接、把查
询翻译成服务器可接受的形式和管理返回数据等的许多问题的细节。
但是,在某些情况下,可能想要绕过 Microsoft Jet 数据库引擎,
而用 DAO 直接调用 ODBC 驱动程序管理器。可以用 ODBCDirect 来实
现这个功能。
Microsoft Jet 和 ODBCDirect 有各自的优点。在应用程序中可
以同时使用这两种方法,发挥它们各自的长处。
1 用Microsoft Jet访问ODBC数据
Microsoft Jet 和 ODBCDirect 工作区提供了不同的但又互补的
功能。应当使用 Microsoft Jet 工作区来访问 MDB 文件和 ISAM 数
据格式(如文本和电子数据表)。同样,当需要用 Microsoft Jet特
有的功能来访问 ODBC 数据时,也要用到它。
Microsoft Jet 支持,而 ODBCDirect 不支持的功能包括:
* 可更新的联接。可以更新基于多表联接的 Recordset 对象中
的数据。
* 支持链接表。Microsoft Jet 允许在本地 Microsoft Jet 数
据库中存储与服务器数据的永久性链接。在链接表时,可以
缓存表的结构信息,这些信息包括本地数据库中的字段和索
引信息。在下次访问该表时,连接速度会更快,因为不需要
再次从服务器中检索这些结构信息了。
* 支持 Find 方法。Microsoft Jet Recordset 对象支持
FindFirst、FindNext、FindPrevious 和 FindLast 方法。
* 更新查询的部分故障。如果一个批量查询因某种原因而失败,
则查询中止。这时用户有权决定是否提交在失败点处所做的
变更。
* 用户定义的属性。使用 Microsoft Jet,可为现存的对象添
加永久的属性。可用这些属性对象来定义更多的 Microsoft
Jet 对象。例如,可为对象添加 Description 属性并为它们
中的每个指定描述性文本。
* 交叉表查询。Microsoft Jet 引擎支持 SQL 的 TRANSFORM语
句,该语句能用来创建用于汇总数据的交叉表查询。
* 异种数据访问。可以访问服务器数据、本地 Microsoft Jet
数据库 (MDB) 数据和外部的ISAM数据(如FoxPro、Paradox、
Btrieve 和 dBASE 数据)。可联接不同数据源中的表。
* 可编程 DDL。必须使用Microsoft Jet工作区来执行使用DAO
的 DDL 操作。ODBCDirect 不提供 TableDef 对象,所以不能
创建或修改表。但可通过运行 SQL 的 DDL 语句来执行使用
ODBCDirect 的 DDL 操作。
* 窗体和控件绑定。如果应用程序要求将窗体和控件绑定到ODBC
数据源的数据中,则必须使用Microsoft Jet。因为ODBCDirect
不支持链接表,所以在 ODBCDirect 工作区内访问的数据不能
被绑定到窗体和控件上。
如果不需要这些功能,则可以独占方式使用 ODBCDirect 工作区。
但也可以同时在应用程序中定义 Microsoft Jet 和 ODBCDirect 工作区。
例如,在同一函数中,可以定义 Microsoft Jet 工作区来执行使用 DAO
的 DDL 操作,同时还可定义 ODBCDirect 工作区来实现异步查询。
2 用ODBCDirect访问ODBC数据
ODBCDirect提供了访问服务器数据的更为直接的方法,它直接在ODBC
API 的顶部使用现存的 DAO 对象模型。ODBCDirect 在 ODBC API 之上实
现了简单的代码层,来建立连接、创建游标和执行使用最小的工作站资源
的复杂过程。ODBCDirect 提供了如下优点:
* 直接访问。使用 ODBCDirect,应用程序可以直接访问 ODBC 数
据源,这样就使服务器能够响应所有的查询过程。
* 减少资源需求。由于不需要加载 Microsoft Jet 数据库引擎,
所以应用程序需要较少的工作站资源。
* 改善了对服务器特有功能的访问。例如,对支持它的服务器来说,
ODBCDirect 允许指定游标的位置是在本地还是在服务器上。此外,
要与存储在服务器上的过程交互,则可指定输入值和检查返回值;
而在使用 Microsoft Jet 时,这两个操作都是不可能的。
* 异步查询。可以在执行一个查询的同时执行其它操作,而不用等
到该查询结束。这样就可以通过检查属性来跟踪查询的执行情况。
该特性为应用程序在并发性和优化性方面能提供更大可能。
* 分批的最有利的更新。允许在本地缓存记录集变更,然后成批地
将这些变更发送给服务器。
* 更灵活地执行存储过程。使用 ODBCDirect,可以处理来自存储过
程的输出参数和返回值。
--
_/ _/ _/ _/
_/_/ _/_/ _/_/ _/_/
_/ _/ _/ _/ _/ _/
_/ _/ _/ _/
_/ _/ _/ _/
※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: space.hit.edu.c]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.453毫秒