第9章ADO客户数据库编程..doc
文本预览下载声明
第9章 ADO客户数据库编程
ADO,即ActiveX Data Objects,是一种特殊的OLE DB客户程序,它允许访问程序在Visual C++、Visual Basic、VBscript、Java等编程语言中访问。虽然ADO的巨大优势在于Visual Basic和VBscript的使用,但是在某些特殊的情况下,ADO在Visual C++中的访问是无法避免的。正是由于ADO本身是一种OLE DB客户程序,所以在数据库应用程序里使用ADO变得更加容易。ADO同OLE DB、数据库应用以及数据源之间的关系可以用图9-1表示:
图9-1 ADO同OLE DB、数据库应用以及数据源之间的关系
本章详细介绍ADO的基本原理和数据库访问技术。
9.1 ADO原理
9.1.1 ADO与OLE DB
ADO是微软最新的对象层次上的数据操作技术,它为操作OLE DB数据源提供了一套高层次自动化接口。尽管OLE DB 已经是一个强大的数据操作接口,然而大多数数据库应用开发者并不需要OLE DB提供的操作数据的底层控制接口。大多数开发者对于管理内存资源、手工聚合组件以及其它的底层操作接口并不是很感兴趣。另外,开发者经常使用高层的、不支持指针和C++函数调用规范的开发语言,OLE DB为这种需要提供了方便。
从功能上来说,ADO也是一种OLE DB客户程序,不过它不依赖于特定的OLE DB服务器,相反,它支持所有的OLE DB服务提供者。通过这些OLE DB服务提供者,ADO支持客户/服务器模式和基于Web的数据库应用。
ADO支持客户/服务器模式和基于Web的数据操作,ADO尤其支持通过客户/服务器模式或者基于Web模式访问微软的SQL Server数据库服务器。
9.1.2 ADO的优越性
对于数据库编程人员来说,ADO具有如下优越性:
便于使用。
支持多种编程语言,包括Visual Basic、Java、C++、VBScript和JavaScript。
支持任何的OLE DB服务器,ADO可以操作任何的OLE DB数据源。
不损失任何OLE DB的功能,ADO支持C++编程人员操作底层的OLE DB接口。
可扩展性,ADO能够通过提供者属性集合动态地表示指定的数据提供者,还能够支持COM的扩展数据类型。
9.1.3 ADO对象模型
ADO对象模型包括以下关键对象:
Connection对象
在数据库应用里操作数据源都必须通过该对象,这是数据交换的环境。Connection对象代表了同数据源的一个会话,在客户/服务器模型里,这个会话相当于同服务器的一次网络连接。不同的数据提供者提供的该对象的集合、方法和属性不同。
借助于Connection对象的集合、方法和属性,可以使用Open和Close方法建立和释放一个数据源连接。使用Execute方法可以执行一个数据操作命令,使用BeginTrans、CommitTrans和RollbackTrans方法可以启动、提交和回滚一个处理事务。通过操作the Errors 集合可以获取和处理错误信息,操作CommandTimeout属性可以设置连接的溢出时间,操作ConnectionString属性可以设置连接的字符串,操作Mode属性可以设置连接的模式,操作Provider属性可以指定OLE DB提供者。
Command对象
Command对象是一个对数据源执行命令的定义,使用该对象可以查询数据库并返回一个Recordset对象,可以执行一个批量的数据操作,可以操作数据库的结构。不同的数据提供者提供的该对象的集合、方法和属性不同。
借助于Command对象的集合、方法和属性,可以使用Parameters集合制定命令的参数,可以使用Execute方法执行一个查询并将查询结果返回到一个Recordset对象里,操作CommandText属性可以为该对象指定一个命令的文本,操作CommandType属性可以指定命令的类型,操作Prepared可以得知数据提供者是否准备好命令的执行,操作CommandTimeout属性可以设置命令执行的溢出时间。
Parameter对象
Parameter对象在Command对象中用于指定参数化查询或者存储过程的参数。大多数数据提供者支持参数化命令,这些命令往往是已经定义好了的,只是在执行过程中调整参数的内容。
借助于Parameter对象的集合、方法和属性,可以通过设置Name属性指定参数的名称,通过设置Value属性可以指定参数的值,通过设置Attributes和Direction、Precision、NumericScale、Size与Type 属性可以指定参数的信息,通过执行AppendChunk方法可以将数据传递到参数里。
Recordset对象
如果
显示全部