在敲学生管理系统之前,我们就学习过ADO的有关知识。但是昨天被问到ADO的几个对象,顿时无言!为什么会出现这样的结果呢,明明是学习过了,而且也实践过(红皮书的五个例子)。这充分说明了,在以往的学习过程中,自己没有及时的进行总结,或是总结了,也只是形式上的总结而已,而没有进行进一步的思考。

首先,我们先来了解一下什么是ADO?

ADO(ActiveX Data Object),是一种基于OLEDB之上的数据库访问技术,OLEDB是一种底层的编程接口,它支持关系或非关系型数据源,比如各种类型的数据库,电子表格,电子邮件和文本文件等。

ADO对象模型主要包括七个对象,分为三个独立对象(主要对象)和四个非独立对象(辅助对象)。如下图:

从上面的图中我们可以清楚的看出,为什么ADO要分为独立对象和非独立对象,主要是由于非独立对象都需要依赖于三个独立对象。那么这几个对象之间有什么关系呢?

 1.Connection对象:负责数据库的连接工作,可以说它是操作数据库的前提,换句话说就是其他对象都必须依赖于Connection对象才能发挥其特有的功能。

Errors集合和Error对象: Errors集合包含Connection对象的所有Error对象。任何涉及到ADO对象的操作都有可能发生一个或多个提供错误。当出现提供错误时,Error对象将被放在Error集合当中。

2.Command对象:主要是负责对数据库执行命令和操作。使用Command对象还可以将查询到的结果返回到RecordSet。

Parameter集合和Parameter对象:Command对象包含一个Parameters集合,Parameters集合包含参数化的Command对象的所有参数,每个参数信息由parameter对象来表示。

 3.RecordSet对象:表示来自基本表或是命令(Command)执行结果的记录集。它可以说是ADO中最灵活,功能最强大的一个对象。利用该对象可以方便的操作数据库中的记录,完成对数据库的几乎所有操作。

Fields集合和Field对象,Fields集合代表的是RecordSet中的各个列数据库字段,RecordSet返回中的每一列在Fields集合中都有一个相关的field对象。如果说RecordSet是用来操作数据的,那么Field就是用来处理数据。

最后是Properties集合和Property对象,Properties集合是用来保存前面的Connection,Command,RecordSet以及Field对象有关的各个Property对象,每个Property对象中都存有这些对象的信息。

ADO和我们后面的ADO.NET都是一种数据库访问技术,它们之间有什么区别呢,后面我将会在我的下一篇博客中进行补充和说明。

再看ADO对象模型的更多相关文章

  1. 再看Ajax

    再回顾Ajax相关的内容,再次梳理学习还是很有必要的,尤其是实际的开发中,ajax更是必不可少,仔细学习以便避免不必要的错误. 文章导读: --1.使用XMLHttpRequest---------- ...

  2. 再看ftp上传文件

    前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在 ...

  3. 再看 AspriseOCR - OCR应用开发 -20151124

    再看 AspriseOCR - OCR应用开发 我写这个博文时间为 2015/11/24日,注意时间因为,网上很多文章时间上很久远,有的已经不能参考了 很多人面对从图片中识别文字或者数字0~9  A~ ...

  4. Android菜鸟的成长笔记(17)—— 再看Android中的Unbounded Service

    原文:Android菜鸟的成长笔记(17)-- 再看Android中的Unbounded Service 前面已经写过关于startService(Unbounded Service)的一篇文章:&l ...

  5. 再看case语句

    再看case语句,case语句只处理单条记录,而不是set 列名的使用,可以当做数值来使用: case when 后面简直是完美的的,什么东西都是能放的,只要是一个逻辑上的true/false的逻辑就 ...

  6. android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

    android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

  7. python基础----再看property、描述符(__get__,__set__,__delete__)

    一.再看property                                                                          一个静态属性property ...

  8. perf使用的问题,再看perf record,perf record 设置的采样频率,采样频率是如何体现在

    当perf stat -e branches 是统计 再看perf record,perf record是为了是记录时间发生的时候的调用栈, 在我的测试代码中总共有200,000,000条branch ...

  9. 再看Scrapy(1) 基本概念

    再看Scrapy(1) 基本概念 1 准备 安装scrapy: 国内镜像源(官方的pypi不稳定)安装 pip3 install -i https://pypi.douban.com/simple/ ...

随机推荐

  1. J2EE (十) 简洁的JSTL、EL

    简介 JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库. 由四个定制标记库(core.format.xml 和 sql)和一对通 ...

  2. C# typeof Gettype is as &拆箱 装箱

    有时候,我们不想用值类型的值,就是想用一个引用..Net提供了一个名为装箱(boxing)的机制,它允许根据值类型来创建一个对象,然后使用对这个新对象的一个引用. 首先,回顾两个重要的事实,1.对于引 ...

  3. C# Dictionary 应用

    1.字典定义并添加数据 Dictionary<string, string> dic = new Dictionary<string, string>(); dic.Add(& ...

  4. iis配置出现的问题及解决

    唯一密钥属性“value”设置…无法添加类型为add 在配置IIS7.5时,会出现 在唯一密钥属性“value”设置为“default.aspx”(或者index.asp等)时,无法添加类型为“add ...

  5. iOS 数据持久化

    一.plist文件存储 获得文件 NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDom ...

  6. MRC和ARC混编

    iOS5.0以后就开始可以使用ARC( Automatic Reference Counting:自动引用计数)来代替之前的MRC(Manual Reference Counting:人工引用计数). ...

  7. java下载文件

    /** * * @param file * @param response */ private void downLoad(File file, HttpServletResponse respon ...

  8. 使用“bulk insert ”进行批量插入数据

    本文转自csdn中文章,再次感谢他给我们分享. Bulk Insert命令详细 BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中.语法: BULK INSERT [ [ 'da ...

  9. 自律训练法 John Sehorz

    自律训练法,系1932年由德国精神医学医师John Sehorz所创立.他研究人们在催眠催眠状态下,所呈现的生理状态,如:沉重与温暖感.. ,因而,John Sehorz改以「逆向操作」之方式,由自我 ...

  10. C语言初学 比较五个整数并输出最大值和最小值2

    #include <stdio.h> int main() { int i,a[5]; int max = 0,min = 0; printf("输入5个整数(空格隔开) :\n ...