VB远程数据库访问方法 阚志刚 马瑞民 袁文翠 摘 要 本文介绍了VB提供的四种访问远程数据库的方法:数据访问对象、远程数据访问对象、开放式数据库互连API函数和VBSQL API函数,并给出了每种方法的优缺点。 关键词 远程数据库访问,数据库引擎,Data控件,ODBC API 1 引言 作为一种优秀的开发工具,VB(Visual Basic)不但能够访问本地数据库,而且还提供了访问远程数据库的方法:(1)利用Data控件、依附控件和数据访问对象(Data Access Object,DAO),它们都是以Microsoft Jet数据库引擎为基础来实现的;(2)利用Remote Data控件、依附控件和远程数据对象;(3)利用开放式数据库互连API函数;(4)利用VBSQL API函数。这些方法各有优缺点,本文对它们进行了简要的介绍,希望开发出更好的客户/服务器应用程序。 2 Microsoft Jet数据库引擎 DAO使用Jet数据库引擎通过ODBC驱动程序管理器和一个特定的服务器驱动程序与远程数据库服务器通信(如图1所示)。这个方法把开发者与某些编程复杂性隔离开来,同时提供高级数据访问对象、属性和方法。 |
图1 使用DAO和Jet引擎的远程数据访问 3 远程数据对象 远程数据对象(RDO)包含在VB4.0/VB5.0企业版中,由一个动态连接库MSRDO32.DLL实现。当VB版本还只是2.0时,从VB访问MS SQL Server的手段只有API函数集。VB发展到3.0时,其DAO/Jet(Microsoft Access的数据库引擎)功能非凡,具备面向对象的程序接口,但处理速度尚不尽人意。当MS SQL Server发展到6.0、VB发展到4.0时,开发了新的对象模块,由此产生了RDO,可以访问MS SQL Server和Oracle远程数据库;RDO2.0是由VB5.0提供的。 |
图2 使用RDO的远程数据访问 RDO对象模型如图3所示,除了rdoEngine对象外,每个对象都在一个关联的集合中。RDO只在32位操作系统(Windows95或Windows NT)上得到支持。 |
图3 RDO2.0对象模块结构 RDO包括若干对象、属性、方法,它们经过特别设计以实现同存储过程及其输入和输出参数、返回状态值的协同工作。RDO也可处理由单一查询生成的任何数目的结果集。 4 开放式数据库互连(ODBC)API ODBC API是开放式数据库连接库及驱动程序的调用级接口,这些库对Microsoft SQL Server及任何具有ODBC驱动程序的数据库提供数据访问连接。通过对这个接口进行编程,可能建立与数据库无关的代码,这意味着ODBC API提供一个自动适应多种数据库的通用编程模型。随着数据访问引擎的发展,越来越多的数据引擎采用ODBC API作为它们的固有的数据库接口。ODBC API提供对消息的完全控制,并允许处理后端服务器的大多数特性。ODBC API不支持数据感知的依附控件,却支持利用客户方或服务器方的光标。根据驱动程序的相容级别和远程服务器的功能的不同,光标和其他操作的建立和管理的责任要么由客户的ODBC驱动程序接受,要么由服务器引擎自己负责。 |
图4 使用ODBC API的远程数据访问 ODBC API是Jet数据库引擎用于访问外部非ISAM数据库的接口。尽管ISAM有自己的ODBC驱动程序存在,但Jet使用它自己的有关这些数据库的可安装ISAM驱动程序。 5 VBSQL API Visual Basic Library for SQL Server(VBSQL)是专门为Visual Basic操纵Microsoft SQL Server而开发的函数库,它几乎包含所有的DB-Library API,并作为Microsoft SQL Server的固有接口支持。如果正要建立一个新的客户机/服务器应用,并计划使用API模型,建议使用ODBC API,而不是使用VBSQL或DB-Library。当应用只需要访问Microsoft SQL Server系统时,可以考虑使用VBSQL。 |
图5 使用VBSQL API的远程数据访问 6 结束语 文中介绍了四种远程数据访问方法,它们各具特色,在实际中应综合使用,可以取长补短、达到最佳效果。 阚志刚 博士生。主要研究方向:数据库技术、多媒体技术等。 马瑞民 副教授。主要研究方向:多媒体技术、数据库技术等。 作者单位:大庆石油学院计算机科学系 黑龙江.安达(151400) 参考文献 [1] Robert Signore,John Creamer,Michael O.Stegman, 侯雪萍,等译. 开放式数据库互连ODBC方案集粹.北京:电子工业出版社, 1995 |