Vb访问数据库的方法比较

来源 :硅谷 | 被引量 : 0次 | 上传用户:godwin82
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]Visual Basic是一门开发Windows应用程序很好的一种语言,使用它能够开发出大型的应用系统。它具有访问各种数据库的功能。用Visual Basic访问数据库有许多可供选择的方案,但是选择那种方案更能使开发队伍和应用软件在当前处于有利位置并且适应将来的发展方向呢?这些解决方案各有什么特点?介绍几种Visual Basic访问数据库的方法,对这些数据接口的性能进行了比较,并提出相互的转化关系。
  [关键词]Visual Basic 数据库 数据访问接口 DAO ADO RDO
  中图分类号:TP3 文献标识码:A文章编号:1671-7597 (2008) 0210027-02
  
  一、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数据源访问的优化。
  二、VB访问数据库的现状
  目前,VB访问数据库的方法很多,一般情况下分成两大类,而每一类又有很多方法。下面分别列出每一类及每一类包含的方法。
  


  三、几种接口的分析比较
  VBSQL:是Visual Basic结构化查询语言。是一种基于API的接口方法,是VB和SQL Server 之间的一个老接口。它是在基于C语言的DB -Library上建立的,那是我们在SQL Server上使用Sybase的年代。它能与SQL Server的后续版本兼容,但并不支持新的功能。VBSQL只支持微软的SQL Server。VBSQL快而且轻但不支持对象界面。
  0DBC(Open Database Connectivity,开放数据库互连):是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
  ODBC API:是一套复杂的函数集,可提供一些通用的接口,以便访问各种后台数据库。对现今的客户机/服务器应用程序来说,每个数据库系统都有各自的接口,例如SQL Server,Oracle,DB2和Infomix等各种数据库系统提供的接口就完全不一样。对程序员来说,这是一件非常头疼的事。ODBC的出现成为一件大喜事,在添加了一个附加层之后,用户只需要学习和掌握一套函数集,随后就可以直接使用任何数据库系统的大多数特性。但是,不要认为ODBC提供了一个统一的接口,同时也提供了简便的操作。事实上,ODBC API的使用是非常复杂的。如果不正确地使用ODBC API,可能会导致不可预知的错误。例如,假如使用ODBC API代码来关闭连接或释放这些ODBC句柄中的任何一个,那么RemoteData控件或RDO的行为将是不可预知的。保存ODBC句柄以供备用也是没有意义的,因为它们是可变的。
  DAO(Data Access Objects):数据访问对象。是一种应用程序编程接口(API),存在于Visual Basic中,它允许程序员请求对微软的Access数据库的访问。DAO是微软的第一个面向对象的数据库接口。DAO对象封闭了Access的Jet函数。通过Jet函数,它还可以访问其他的结构化查询语言(SQL)数据库。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。DAO可通过ODBC像直接连接到其它数据库一样,直接连接到Access数据库。DAO最适用于单系统应用程序或小范围本地分布使用。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。它对于单一系统的数据库应用程序非常有效。
  JET(Joint Engine Technology):数据连接性引擎技术。是一种基于工作站通过DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处理功能,并可对同种或异种数据源作查询处理。
  RDO(Remote Data Objects):远程数据对象。是一个到ODBC的、面向对象的数据访问接口,它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。但是,RDO已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。RDO是ODBC API的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。
  ADO(Active Data Objects):Active数据对象。是DAO和RDO方式的继承者,ADO 2.0在功能上与RDO更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。ADO"扩展"了DAO和 RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。其编程模型是Microsoft的一种新技术。该技术是为Microsoft最新和最强大的数据访问范例OLE DB而设计的,是一个简单的应用程序层接口。OLE DB是新的底层接口,它并不局限于ISAM、Jet甚至关系数据源,但是它能够处理任何类型的数据,而不考虑它们的格式和存储方法,是一种通用的数据访问范例。由于OLE DB接口比较复杂,不能在VB中直接访问。VB通过ADO封装并且实现了OLE DB的所有功能,从而可以通过ADO来调用OLE DB数据源。作为最新的数据库访问模式,ADO的使用也是简单易用,所以微软已经明确表示今后把重点放在ADO上,对DAO/RDO不再作升级,所以ADO已经成为了当前数据库开发的主流。
  ADC(Advanced Data Connector):高级数据连接器。提供绑定ADO数据源到窗体的数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLE DB对象的一种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上的浏览器为基础的应用程序而设计的。
  RDC(RemoteData Control):远程数据访问控件。是一种对RDO数据绑定的控件。可以输出特定的结果集到数据源控件。
  ODBC Direct:是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。使用在有DAO代码存在的场合,可用来访问远程数据源。
  OLE DB:是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C++的开发者开发定制的数据库组件。OLE DB不能被VB直接调用。
  四、VB访问数据库的原则
  具体问题具体分析,根据具体的环境、条件、要求而采用适当的方案。
  (一)代码的重用和运行的效率
  例如:通过使用ODBC数据源连接数据库的方法,可在变换多种数据库类型的情况下,而不用频繁修改代码。用VBSQL通过DB-Library就做不到。而ODBC接口并不是VB访问数据库运行效率最高的方法。同样,同是使用ODBC接口的ADO的效率要高于RDO。
  (二)实现的简便性,易维护性
  如果一种方法实现起来很复杂,工程的开发必然造成人力物力的浪费,同时这样设计出来的应用程序只会支持起来更复杂或维护时更困难。例如:本地需要访问ISAM或Jet类型数据源,那么就使用DAO/Jet,而没有必要使用通过ODBC的方法。RDC实现起来要较RDO更容易。
  (三)安全性原则
  这一条应根据环境和条件决定。例如局域网的网络安全性要好于广域网因而可直接利用数据控件如DC,这样实现起来方便快捷,而广域网需要大量的错误捕获,如用RDC就不如用RDO易控制错误。
  五、结语
  数据库接口中最新的是ADO,它是比RDO和DAO更加简单、更加灵活的对象模型。对于新工程,应该使用ADO作为数据访问接口。ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。同时ADO针对客户/服务器以及WEB应用程序作了优化。DAO最适用于单系统应用程序或小范围本地分布使用,而RDO已被证明是许多SQL Server、Oracle以及其它大型关系数据库开发者经常选用的最佳接口。
  
  参考文献:
  [1]徐安东,李飞,邢晓怡,Visual Basic数据库应用开发教程,清华大学出版社,2006.
  [2]明日科技,Visual Basic开发技术大全,人民邮电出版社,2007.
  [3]姚巍,Visual Basic数据库开发从入门到精通,人民邮电出版社,2006.
  [4]王春才,高春艳,李俊民,Visual Basic数据库系统开发完全手册,人民邮电出版社,2006.
  
  作者简介:
  王 晶(1979-),女,山东烟台人,助教。主要研究方向:数据库;信息化;软件工程技术应用;温向彬(1975-),男,陕西渭南人,工程师。主要研究方向:自动控制,软件工程。
其他文献
年轻时为了事业打拼,错过了生育的最好年龄,功成名就后才发现要个孩子是件多么奢侈的事……遍试各种方法无果,别忘了,还有绝地逢生的最后一招——试管婴儿。到今天为止,数以百万计的宝宝已经通过这种方式降临人间。虽然这项技术已日臻成熟,但不可否认的是,种种猜疑仍铺天盖地,比如,“试管婴儿”算不算自己亲生的?他长大后和其他孩子会不一样吗?如果你有同样的疑惑,不妨看看下文。  为“试管宝宝”正名  坊间流传着关
期刊
再见赵薇 再见青春  一个故事的开头,如果是“从前……”,那应该是虚构的童话或神话;而一个陈述句的开始,如果是“在我年轻的时候……”毫无疑问,这是一个令人忧伤的写实故事。赵薇的《致我们终将逝去的青春》,讲述的就是这样一个主题:从青年变中年——天底下还有比这更悲哀的事情吗?  而这样一个悲哀的主题由赵薇来讲述,更是一件颇有意味的事情。她的“小燕子”就是掠过我们青春期最亮丽的那抹剪影,说她是一代人的青
期刊
[摘要]随着高等教育的不断普及以及学生规模的不断扩大,为了完善实验教学条件,提供远程教育、继续教育等模式的远程实验应用而生。介绍的是一个以提供理工科电类实验为目标的远程综合实验室,所有实验都基于真实的物理对象,它允许多个用户同时登录、多个实验同时进行,用户无论在何时何地都可以进行同步模式或者异步模式实验。  [关键词]虚拟实验室 网络 Java小应用程序  中图分类号:TP3 文献标识码:A文章编
期刊
[摘要]叙述 Java语言的出现背景、主要特点、发展历程以及Java技术的应用,指出 Java 是当今IT产业和人类文明的创新和希望。  [关键词]Java 语言 技术  中图分类号:TP3文献标识码:A 文章编号:1671-7597 (2008) 0210021-01    一、Java语言的出现  自从1946年世界上第一台电子计算机问世以来,计算模式的发展经历了三个阶段:集中计算模式、分散计
期刊
[摘要]介绍基于MVC模式的成绩管理系统,解释MVC模式,阐述系统的功能模块、突出特点和应用前景。  [关键词]MVC 成绩管理系统  中图分类号:TP3 文献标识码:A文章编号:1671-7597 (2008) 0210030-02    一、引言  近年来,网络技术的日益普及推动了学校信息化的加速发展,使高校教学与管理的模式逐步由传统的面对面、人工作业过渡到基于网络的教学管理平台。考虑到英语教
期刊
[摘要]J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。  [关键词]J2EE 结构 优势  中图分类号:TP3
期刊
[摘要]Java编程中,在遇到对象存取问题时,传统方法采用以Object类为中介,进行类型转换,导致代码可读性差,并常常导致出现运行时的转型异常,且该类错误很难在编译期被发现。采用Java的泛型机制,可以极大的提高程序的可读性与安全性,使程序得以正常运行。  [关键词]Java 泛型 转型   中图分类号:TP3文献标识码:A 文章编号:1671-7597 (2008) 0210022-02   
期刊
[摘要]电力供电系统的安全性、可靠性是保证用电安全,保障经济顺利发展的基本条件。但实际操作中由于供电系统送电覆盖范围辽阔,所经地域环境气候复杂,且存在人为的一些不确定性因素,导致供电系统故障难以避免。探讨110KV供电系统发生故障条件下的继电保护作用问题,希望能够对增强供电系统的安全性和可靠性有所帮助。  [关键词]110KV 供电系统 继电保护 作用   中图分类号:TM7 文献标识码:A 文章
期刊
[摘要]所谓组播就是指定范围的广播,比如说netmeeting就是组播的应用。而泛播是则是v6的概念,主要是指在同一个自治系统内的广播,它比较特殊,它要求所有的路由器记录源地址。对ipv6中的组播和泛播从各方面进行分析和阐述,希望使读者对ipv6中的这两种特殊的广播形式有更深的理解。  [关键词]ipv6 组播 泛播 广播  中图分类号:G22文献标识码:A 文章编号:1671-7597 (200
期刊
[摘要]通过对VFP数据库加密方法的探讨分析,让读者对固定密码、简单加密的固定密码和简单加密变化的密码这三种传统的密码加密方法进行了深入比较。  [关键词]VFP 数据库 加密 随机伪码  中图分类号:TP3 文献标识码:A 文章编号:1671-7597 (2008) 0210024-01    随着计算机科学技术的发展与普及,特别是计算机在政府机关、企业单位、媒体学校等广泛应用,计算机信息安全已
期刊