作为微软旗下一款优秀的RAD工具,VB在数据库应用开发方面的能力十分强大。微软设计了多种数据库访问方法,下面通过对VB访问数据库的多种技术进行深入剖析,并总结出实际开发中的几点经验。希望能够对那VB的初学者有所帮助。(注意,文中所有的描述均在Windows 2000 professional和Visual Basic 6.0的环境下进行的)

一. DAO、RDO、ODBC和ADO

在VB的开发环境中,可以使用三种数据库访问方式,它们分别是:数据访问对象(DAO)、远程数据对象(RDO)和ADO对象模型。

DAO:

数据访问对象是用来显露了Microsoft Jet数据库引擎(最早是给Microsoft Access 所使用,现在已经支持其它数据库),并允许开发者通过ODBC直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或在小范围本地分布使用。其内部已经对Jet数据库的访问进行了加速优化,而且其使用起来也是很方便的。所以如果数据库是Access数据库且是本地使用的话,建议使用这种访问方式。

VB已经把DAO模型封装成了Data控件,分别设置相应的DatabaseName属性和RecordSource属性就可以将Data控件与数据库中的记录源连接起来了。以后就可以使用Data控件来对数据库进行操作。

RDO

RDO(Remote Data Objects)远程数据对象是一个到ODBC的、面向对象的数据访问接口,它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。但是,RDO已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。

和DAO一样,在VB中也把其封装为RDO控件了,其使用方法与DAO控件的使用方法完全一样。

ODBC

ODBC(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由下列几个部件组成:
   
  1. 应用程序(Application)

ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。

驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

2. ODBC API

ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。

数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

ODBC连接目前仅仅限于关系型数据库,对于其他数据源比如EXCEL、文本文件都不能进行访问,而且有很多DBMS(数据库管理系统)都不能充分的支持其所有的功能。相比之下,OLEDB可以存取任何形式的数据,所以其功能是相当的强大,它也指导了目前技术发展的方向。

ADO

ADO(ActiveX Data Object)是DAO/RDO的后继产物。ADO 2.0在功能上与RDO更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。ADO"扩展"了DAO和 RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。

作为最新的数据库访问模式,ADO的使用也是简单易用,所以微软已经明确表示今后把重点放在ADO上,对DAO/RDO不再作升级,所以ADO已经成为了当前数据库开发的主流。

ADO涉及的数据存储有DSN(数据源名称)、ODBC(开放式数据连接)以及OLE DB三种方式。后面的例程将详细讲解这三种方式的具体访问实现。

要使用ADO,必须清楚ADO的对象层次结构,其大体上分为以下7个对象层次:

1、 Command 对象:包含关于某个命令,例如查询字符串、参数定义等的信息。Command 对象在功能上和 RDO的rdoQuery 对象相似。

2、 Connection 对象:包含关于某个数据提供程序的信息。Connection 对象在功能上和 RDO 的 rdoConnection 对象是相似的,并且包含了关于结构描述的信息。它还包含某些 RDOEnvironment 对象的功能,例如transaction 控件。

3、 Error对象:包含数据提供程序出错时的扩展信息。Error 对象在功能上和 RDO 的rdoError 对象相似。

4、 Field 对象:包含记录集中数据的某单个列的信息。Field 对象在功能上和 RDO的rdoColumn 对象相似。

5、 Parameter 对象:包含参数化的Command对象的某单个参数的信息。该 Command对象有一个包含其所有Parameter 对象的 Parameters 集合。Parameter 对象在功能上和 RDO 的 rdoParameter 对象相似。

6、 Property对象:包含某个 ADO 对象的提供程序定义的特征。没有任何等同于该对象的RDO,但DAO有一个相似的对象。

7、Recordset对象:用来存储数据操作返回的记录集。此对象和Connection对象是所有对象最重要的两个对象。

当然,对于初级用户来说,我们只需要掌握其中的Connection对象和RecordSet对象就可以实现基本的数据库操作,在后面的经验介绍里面我将给出详细的介绍。

VB6.0数据库访问技术与例程解析Java教程相关推荐

  1. 数据库访问技术的总结 一

    以下几篇对数据库的访问技术,做一个完整的梳理,已备后来需要时查阅. 一.嵌入式SQL的处理过程 将书写的SQL语句嵌入到主语言中,主语言一般如c.c++.java等.对于这种嵌入式语言(ESQL),R ...

  2. VBNET学习笔记---MS VBnet数据库访问技术,概念,介绍,发展历程.

    VBNET学习笔记---MS VBnet数据库访问技术,概念,介绍,发展历程. 2013-02-20 1.数据库访问技术 a.JET与DAO JET(Joint Engine Technology)数 ...

  3. .NET/C#大型项目研发必备(7)--DataAccess数据库访问技术

    前言:本系列文章适合有初/中级.NET知识的同学阅读. (1)本系列文章,旨在讲述研发一个中大型项目所需要了解的一系列"基本构件",并提供这些"基本构件"的[最 ...

  4. ODBC OLEDB ADO等数据库访问技术

    花了点时间理了一下数据库访问技术相关的东西,一般地,一个数据库产品的发布后,相应地,会为开发者提供一套访问改数据库的接口,比如MySql提供的C API,可以通过这些数据库产品本身的API进行数据库操 ...

  5. QT数据库访问技术简介

    目录 背景介绍 功能对比 QT中数据库操作常用类介绍 用法实例 数据准备 创建实体类 创建数据库访问类 个人总结 关于如何获取数据库执行过程中的错误以及判断SQL语句执行是否成功执行 关于参数化SQL ...

  6. java 浏览器访问图片不显示_[Java教程]重新上传图片后 地址不变 浏览器加载不到的问题...

    [Java教程]重新上传图片后 地址不变 浏览器加载不到的问题 0 2016-05-27 07:00:50 做项目的时候遇到一个问题: 上传文件以后,相同的地址,第一次加载没有问题,当你操作次数过快, ...

  7. 数据库访问技术(二)---ADO.NET

    ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,用于在以往的Microsoft技术中访问数据.之所以使用ADO.NET名称,是因为Microsoft希 ...

  8. 黑马程序员_ADO.Net 数据库访问技术

    -----------Windows Phone 7手机开发..Net培训..net学习型技术博客.期待与您交流! ------------ 1.程序要和数据库交互要通过ADO.Net进行,通过ADO ...

  9. 感应(异步)电机无速度传感器技术—TI例程解析

    电机控制系列文章 感应(异步)电机磁场定向控制MATLAB/Simulink建模 感应(异步)电机磁场定向控制电流环PI控制参数设计 感应(异步)电机磁场定向控制速度环PI控制参数设计 感应(异步)电 ...

  10. ADO.Net 数据库访问技术

    1.在web.Config配置文件中设置连接字符串 <connectionStrings><add name="connString" connectionStr ...

最新文章

  1. 软件技术专业-就业提示(二、测试工程师)
  2. 计算机三级信息安全技术考什么2019,2019计算机三级信息安全技术精品练习8
  3. 抢先试用ReSharper UnitRun™ 1.0
  4. win10创建新的计算机用户名和密码错误,Win10开机提示用户名或密码不正确现象的解决办法...
  5. python基础教程视频-Python基础视频教程全集
  6. 全景视频传输开源项目汇总
  7. 图像基本处理(灰度化)
  8. PDP附着和PDP激活的区别
  9. java定义苹果类Apple_Java开发笔记(七十)Java8新增的几种泛型接口
  10. 【JS从入门到精通】09-数组
  11. 测试人员如何在项目中开展测试
  12. 身份认证的动态密码器解决方案
  13. 【STM32学习笔记】(9)——串口通讯(USART)详解
  14. win10+vs2017配置mpi环境的记录(已成功)
  15. ARM汇编 beq和bne %BXX前XXb, %FXX后XXf
  16. DIV+CSS实现旅游网站首页
  17. python编程猜拳游戏_python写猜拳小游戏
  18. 《技术顾问聘用协议书》个人分享
  19. 传统文化中,“七”代表着什么?
  20. 检测微信好友是否删除自己

热门文章

  1. CAD2020操作手册
  2. ps2模拟器bios3dm_龙漫ps2模拟器最新版 - 模拟器综合讨论区 - 3DMGAME论坛 - Powered by Discuz!...
  3. 自然语言处理(NLP)语义分析--文本分类、情感分析、意图识别
  4. 戴口罩人脸数据集和戴口罩人脸生成方法
  5. S7-200SMART编程软件在符号绝对模式下变量符号名显示不全的解决办法
  6. 《数字图像处理 第三版》(冈萨雷斯)——第五章 图像复原与重建
  7. java你如何调字体大小_eclipse怎样调整代码字体大小 值得一看
  8. win10+VS2013+OPENCV如何配置于仕琪人脸检测算法
  9. DirectX组件之---DirectShow介绍
  10. 软考高项-信息系统项目管理师-精华笔记