第10章利用ADO开发数据库应用程序_第1页
第10章利用ADO开发数据库应用程序_第2页
第10章利用ADO开发数据库应用程序_第3页
第10章利用ADO开发数据库应用程序_第4页
第10章利用ADO开发数据库应用程序_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库应用教程数据库应用教程n10.1 ado对象模型概述对象模型概述 n10.2 connection对象对象 n10.3 recordset对象对象 n10.4 command对象对象 n10.5 field对象和对象和fields集合集合 n10.6 error对象和对象和errors集合集合 n10.7 ado对象综合应用例对象综合应用例 n10.1.1 ado数据访问技术的基本概念数据访问技术的基本概念n10.1.2 ado模型的对象模型的对象n10.1.3 加载加载ado对象库对象库 10.1.1 ado数据访问技术的基本概念数据访问技术的基本概念1.概况概况ado(activex

2、 data object)是微软最新的数据访问组件(微软数)是微软最新的数据访问组件(微软数据访问组件简称据访问组件简称mdac)的一部分,)的一部分,mdac的常用版本有的常用版本有mdac 2.5和和mdac 2.7,ado的最新的版本的最新的版本ado.net也包含在也包含在mdac 2.7中。中。 ado是基于是基于ole-db(object linking & embedded database)之上的面向对象的数据访问模型,之上的面向对象的数据访问模型,ole-db是微软公司开发的一种高性是微软公司开发的一种高性能的、基于能的、基于com的低层的数据访问接口,其作用是向应用程序提供

3、一的低层的数据访问接口,其作用是向应用程序提供一个统一的数据访问方法,而不必考虑数据源的具体格式和存储方式。由个统一的数据访问方法,而不必考虑数据源的具体格式和存储方式。由于于ole-db直接调用数据提供者开发的数据驱动程序,所以具有性能高、直接调用数据提供者开发的数据驱动程序,所以具有性能高、速度快等特点。速度快等特点。 ado组件包含了所有的可以被组件包含了所有的可以被ole-db标准接口描述的数据类型,标准接口描述的数据类型,通过通过ado的方法和属性可以为应用程序提供统一的数据访问方法和接口。的方法和属性可以为应用程序提供统一的数据访问方法和接口。 ado对象模型还具有可扩展性,当把数

4、据库上层应用程序移植到对象模型还具有可扩展性,当把数据库上层应用程序移植到不同的数据库平台上时,只需要更换连接数据库的驱动程序,而不需要不同的数据库平台上时,只需要更换连接数据库的驱动程序,而不需要对上层程序作任何修改。对上层程序作任何修改。 10.1.1 ado数据访问技术的基本概念数据访问技术的基本概念2.特点特点(1)支持批处理()支持批处理(batch updating),可以分批处理客户端提出的请求。),可以分批处理客户端提出的请求。(2)支持存储过程()支持存储过程(stored procedures),可使用输入参数给存储),可使用输入参数给存储过程输入值,使用输出参数取得存储过

5、程的返回值。过程输入值,使用输出参数取得存储过程的返回值。 (3)可以使用存储过程或批处理)可以使用存储过程或批处理sql指令,实现返回多组记录集的功能。指令,实现返回多组记录集的功能。10.1.1 ado数据访问技术的基本概念数据访问技术的基本概念3. ado操作数据库的物理机制操作数据库的物理机制 10.1.2 ado模型的对象模型的对象1.概况概况ado模型的对象库主要由模型的对象库主要由7个基本对象和个基本对象和4个集合对象构成,七个基个集合对象构成,七个基本对象分别是本对象分别是connection、recordset、command、field、property、parameter

6、和和error,4个集合对象是个集合对象是errors、fields、parameters和和properties。2.对象之间的关系对象之间的关系10.1.2 ado模型的对象模型的对象3.基本对象基本对象 (1)connection(连接)对象(连接)对象 connection 对象代表与数据源的连接,它包含了关于目标数据库数对象代表与数据源的连接,它包含了关于目标数据库数据提供者(据提供者(data provider)的相关信息。可利用)的相关信息。可利用connection对象管理与对象管理与数据库的连接,包括打开连接、关闭连接、运行数据库的连接,包括打开连接、关闭连接、运行sql语句

7、等。语句等。 (2)recordset(记录集)对象(记录集)对象 recordset对象表示的是来自基本表或命令执行结果的记录的集合,对象表示的是来自基本表或命令执行结果的记录的集合,由一系列字段组成。在任何时候,由一系列字段组成。在任何时候,recordset对象所指的当前记录均为集对象所指的当前记录均为集合内的单个记录。可以把合内的单个记录。可以把recordset对象看成是内存中的二维表。对象看成是内存中的二维表。 10.1.2 ado模型的对象模型的对象(3)command(命令)对象(命令)对象 command对象定义了将对数据源执行的指定命令,通过已建立的对象定义了将对数据源执行

8、的指定命令,通过已建立的连接发出连接发出“命令命令”可以以某种方式来操作数据源。一般情况下,通过命令可以以某种方式来操作数据源。一般情况下,通过命令对象可以在数据源中添加、删除或更新数据,或者从数据库中检索数据,对象可以在数据源中添加、删除或更新数据,或者从数据库中检索数据,并以记录集的形式返回。并以记录集的形式返回。 (4)field(字段)对象(字段)对象 如果将记录集看作二维网格,每一字段(列)就是一个如果将记录集看作二维网格,每一字段(列)就是一个field对象,对象,field对象具有名称、数据类型和值等属性,在值属性中包含了来自数据对象具有名称、数据类型和值等属性,在值属性中包含了

9、来自数据源的真实数据。源的真实数据。 (5)property(属性)对象(属性)对象 property对象表示对象表示ado对象的特征,每个对象的特征,每个ado对象都由一组唯一的对象都由一组唯一的property(属性)对象来描述或控制对象的行为。(属性)对象来描述或控制对象的行为。 属性有内置和动态两种类型。内置属性是属性有内置和动态两种类型。内置属性是ado对象的一部分并且随对象的一部分并且随时可用。动态属性则由特别的数据提供者添加到时可用。动态属性则由特别的数据提供者添加到ado对象的属性集合中,对象的属性集合中,仅在数据库提供者被使用时才能存在。仅在数据库提供者被使用时才能存在。 1

10、0.1.2 ado模型的对象模型的对象(6)parameter(参数)属性(参数)属性 命令需要的变量部分即命令需要的变量部分即“参数参数”,参数可以在命令发布之前进行更,参数可以在命令发布之前进行更改。例如,可重复发出相同的数据检索命令(如检索成绩为某等级的学生改。例如,可重复发出相同的数据检索命令(如检索成绩为某等级的学生数据,等级用一个变量数据,等级用一个变量dj来表示,此处的来表示,此处的dj就可看成是一个参数),但就可看成是一个参数),但每一次均可更改指定的检索信息(如第一次每一次均可更改指定的检索信息(如第一次dj为为“良好良好”,第二次,第二次dj为为“优秀优秀”等)。等)。 在

11、在ado中,中,parameter对象用于管理与基于参数化查询或存储过程对象用于管理与基于参数化查询或存储过程的的command对象相关联的参数。对象相关联的参数。 (7)error对象对象 应用程序执行过程中,错误的发生是不可避免的,错误通常是由于应用程序执行过程中,错误的发生是不可避免的,错误通常是由于无法建立连接、执行命令或对某些状态(例如,试图使用没有初始化的记无法建立连接、执行命令或对某些状态(例如,试图使用没有初始化的记录集)的对象进行操作时发生。录集)的对象进行操作时发生。ado对象模型用对象模型用error对象体现错误,任对象体现错误,任意给定的错误都会产生一个或多个意给定的错

12、误都会产生一个或多个error对象。对象。error对象包含单个操作产对象包含单个操作产生的错误的详细信息,还包含数据库驱动程序出错时的扩展信息。生的错误的详细信息,还包含数据库驱动程序出错时的扩展信息。 。 经常使用的经常使用的ado对象有对象有:connection 对象、对象、recordset对象、对象、command对象、对象、fields对象和对象和field对象。对象。 10.1.2 ado模型的对象模型的对象4集合对象集合对象 ado还提供了集合对象,在集合对象中可以包含基本对象。还提供了集合对象,在集合对象中可以包含基本对象。使用集合方法可按名称(文本字符串)或序号(整型数)

13、对集合使用集合方法可按名称(文本字符串)或序号(整型数)对集合中的对象进行检索。中的对象进行检索。 (1)errors集合对象集合对象 connection对象具有对象具有errors集合,其中包含集合,其中包含error对象。对象。 (2)parameters对象对象 command对象具有对象具有parameters集合,包含应用于集合,包含应用于command对象对象的所有的所有parameter对象。对象。 10.1.2 ado模型的对象模型的对象 (3)fields对象对象 recordset对象具有对象具有fields集合,包含集合,包含recordset对象中的所有对象中的所有f

14、ield对象。对象。 (4)properties对象对象 connection、command、recordset和和field对象都具有对象都具有properties集合,它包含所有属于各个对象的集合,它包含所有属于各个对象的property对象。对象。 10.1.3 加载加载ado对象库对象库 加载方法加载方法 在在visual basic 6.0中,有两种中,有两种ado对象库:一种叫对象库:一种叫adodb,包,包含在含在msado*.dll(*代表版本号)中;一种叫做代表版本号)中;一种叫做ador,包含在,包含在msador15.dll中。引用这两种类型库的方法是执行中。引用这两种

15、类型库的方法是执行“工程工程”菜单中菜单中的的“引用引用”命令,将出现命令,将出现“引用引用”对话框,在该对话框中选中对话框,在该对话框中选中“microsoft activex data object 2.7 library(adodb)”或或“microsoft activex data object recordset 2.7 library(ador)”,然后按,然后按“确定确定”按钮即可。按钮即可。 n10.2.1 connection对象的常用属性对象的常用属性n10.2.2 connection对象的常用方法对象的常用方法n10.2.3 连接到数据库的方法连接到数据库的方法10.

16、2 connection对象对象 作用概述作用概述 connection对象可以用来在应用程序和数据库之间建立一条数据对象可以用来在应用程序和数据库之间建立一条数据传输传输“通道通道”,利用这个,利用这个“通道通道”,应用程序就可使用,应用程序就可使用command对对象、象、recordse对象等来对对象等来对connection对象所连接的数据库进行插入、对象所连接的数据库进行插入、删除、更新和查询等操作。删除、更新和查询等操作。 打电话例打电话例 应用程序和数据库是通话的双方,建立一个应用程序和数据库是通话的双方,建立一个connection对象就像对象就像是应用程序拿起了是应用程序拿起

17、了“话筒话筒”,打开一个,打开一个connection对象就好象应用程对象就好象应用程序在序在“拨号拨号”,“拨号拨号”即连接打开成功,应用程序和数据库就可以即连接打开成功,应用程序和数据库就可以“通话通话”了,即应用程序就可以使用了,即应用程序就可以使用command对象及对象及recordset对象对象操作数据库了。操作数据库了。 10.2.1 connection对象的常用属性对象的常用属性 1connectionstring属性属性 该属性是一个可读写该属性是一个可读写string类型的属性,用来设置或返回数据提类型的属性,用来设置或返回数据提供者或服务提供者打开到数据源的连接所需要的

18、特定信息,即连接字供者或服务提供者打开到数据源的连接所需要的特定信息,即连接字符串。符串。 2connectiontimeout属性属性 该属性是一个可读写该属性是一个可读写long类型的属性,用来指定中止一个失败的类型的属性,用来指定中止一个失败的connection对象的对象的open方法调用之前必须等待的时间,默认值为方法调用之前必须等待的时间,默认值为15秒。秒。 3commandtimeout属性属性 该属性是一个可读写的该属性是一个可读写的long类型的属性,用来指定中止某个相关类型的属性,用来指定中止某个相关command对象的对象的execute方法调用之前必须等待的时间。默认

19、值为方法调用之前必须等待的时间。默认值为30秒。秒。 10.2.1 connection对象的常用属性对象的常用属性 4state属性属性 该属性是一个可读写该属性是一个可读写long类型的属性,用来指定连接是处于打开类型的属性,用来指定连接是处于打开状态,还是处于关闭状态或中间状态。状态,还是处于关闭状态或中间状态。 5version属性属性该属性是一个字符串型的属性,用来返回该属性是一个字符串型的属性,用来返回ado对象库的版本号。对象库的版本号。 10.2.2 connection对象的常用方法对象的常用方法 1begintrans方法方法该方法用于启动新的事务,格式如下:该方法用于启动

20、新的事务,格式如下:level = connectionobj.begintrans() 或或 connectionobj.begintrans其中其中connectionobj是连接对象变量名,如果该方法作为函数调用则是连接对象变量名,如果该方法作为函数调用则返回指示事务嵌套层次的长整型数据。返回指示事务嵌套层次的长整型数据。 2committrans方法方法该方法用于保存所有更改并结束当前事务。也可以使用它启动新事务。该方法用于保存所有更改并结束当前事务。也可以使用它启动新事务。格式如下:格式如下:connectionobj.committrans 3rollbacktrans方法方法 该

21、方法用于取消当前事务中所做的所有操作并结束事务。它也可以启该方法用于取消当前事务中所做的所有操作并结束事务。它也可以启动新事务。格式如下:动新事务。格式如下:connectionobj.rollbacktrans10.2.2 connection对象的常用方法对象的常用方法 4open方法方法 用来打开到数据源的连接。语法格式如下:用来打开到数据源的连接。语法格式如下:connectionobj.open connectionstring, userid, password, openoptions参数参数connectionstring是一个字符串,包含连接信息;参数是一个字符串,包含连接信

22、息;参数userid也也是一个字符串属性,包含建立连接时所使用的用户名称;参数是一个字符串属性,包含建立连接时所使用的用户名称;参数password也也是一个字符串属性,包含建立连接时所有的用户密码;是一个字符串属性,包含建立连接时所有的用户密码;openoptions参数参数使用场合不多,这里不再介绍。使用场合不多,这里不再介绍。userid和和password属性的值通常可在属性的值通常可在connectionstring属性中一起设置。属性中一起设置。 设置连接参数有两种方法:一种是设置连接对象的设置连接参数有两种方法:一种是设置连接对象的connectionstring属性,然后调用属

23、性,然后调用connection对象的不带参数的对象的不带参数的open方法;二是在调用方法;二是在调用connection对象的对象的open方法时使用可选的参数方法时使用可选的参数connectionstring,此时,此时connectionstring属性将自动继承该参数的值。属性将自动继承该参数的值。 10.2.2 connection对象的常用方法对象的常用方法5close方法方法调用调用close方法可关闭方法可关闭connection对象。使用格式如下:对象。使用格式如下:connectionobj.close关闭连接并非将它从内存中删除,此后还可以更改它的属性设置并且还可以关

24、闭连接并非将它从内存中删除,此后还可以更改它的属性设置并且还可以再次打开。要将对象从内存中完全删除,可将对象变量赋值为再次打开。要将对象从内存中完全删除,可将对象变量赋值为nothing,例,例如:如:set connectionobj=nothing使用使用close方法关闭方法关闭connection对象的同时,也将关闭与此连接相关联的对象的同时,也将关闭与此连接相关联的任何活动任何活动recordset对象。关闭对象。关闭connection对象后,调用任何需要与数据对象后,调用任何需要与数据源连接的方法都将产生错误。源连接的方法都将产生错误。 10.2.2 connection对象的常

25、用方法对象的常用方法6execute方法方法该方法用来执行查询、该方法用来执行查询、sql 语句、存储过程或特定提供者的文本命令等语句、存储过程或特定提供者的文本命令等。格式格式1: connectionobj.execute commandtext, recordsaffected, options 格式格式2: set recordsetobj = connectionobj.execute (commandtext, recordsaffected, options) 参数说明:参数说明: 该方法有三个参数,参数该方法有三个参数,参数commandtext是一个字符串,包含要执行的是一个

26、字符串,包含要执行的sql语句、表名、存储过程或特定提供者的文本命令;语句、表名、存储过程或特定提供者的文本命令;recordsaffected是是一个长整型的可选参数,里面存放着调用该方法所影响的记录数目;参数一个长整型的可选参数,里面存放着调用该方法所影响的记录数目;参数options也是一个可选的长整型参数,用来说明也是一个可选的长整型参数,用来说明commandtext 参数中包含参数中包含的是什么的是什么 。10.2.2 connection对象的常用方法对象的常用方法7cancel方法方法该方法用来终止异步执行的该方法用来终止异步执行的execute或或open方法调用。如果试图终

27、止的方方法调用。如果试图终止的方法不是异步执行的方法,则将会出现运行错误。法不是异步执行的方法,则将会出现运行错误。 8openschema方法方法 该方法用来返回数据库的纲要信息。该方法用来返回数据库的纲要信息。 10.2.3 连接到数据库的方法连接到数据库的方法概况:概况:连接到数据库的关键是形成连接字符串,然后把连接字符串赋连接到数据库的关键是形成连接字符串,然后把连接字符串赋值给值给connection对象的对象的connectionstring属性,或在调用连接对属性,或在调用连接对象的象的open方法时,把连接字符串作为它的方法时,把连接字符串作为它的connectionstrin

28、g参数参数值。下面主要介绍连接字符串的设置方法,采用的数据库类型为值。下面主要介绍连接字符串的设置方法,采用的数据库类型为microsoft access数据库和数据库和sql server数据库。数据库。 10.2.3 连接到数据库的方法连接到数据库的方法1通过通过odbc的的dsn建立连接建立连接 (1)通过)通过odbc的的dsn连接到连接到sql server数据库数据库 通过通过odbc的的dsn连接到连接到sql server数据库的连接字符串的一般形式如下:数据库的连接字符串的一般形式如下:dsn=sqlcollegemis;uid=sa;pwd=tah980808其中,其中,“

29、sqlcollegemis”是已经创建好的是已经创建好的sql server数据库的数据库的dsn,“sa”是用户名(系统管理员),是用户名(系统管理员),“tah980808”是用户(系统管理员)密码。是用户(系统管理员)密码。(2)通过)通过odbc的的dsn连接到连接到access数据库数据库 通过通过odbc的的dsn连接到连接到access数据库的连接字符串的一般形式如下:数据库的连接字符串的一般形式如下:dsn=accesscmis;uid=;pwd= 其中,其中,“accesscmis”是已经创建好的是已经创建好的microsoft access数据库的数据库的dsn。10.2.

30、3 连接到数据库的方法连接到数据库的方法2通过通过odbc建立连接建立连接(1)通过)通过odbc连接到连接到sql server数据库数据库 该方式的连接字符串有两种:普通安全模式和信任安全模式。该方式的连接字符串有两种:普通安全模式和信任安全模式。使用普通安全模式的连接字符串的一般形式如下:使用普通安全模式的连接字符串的一般形式如下:driver=sql server; server=tahsj; database=collegemis;uid =sa;pwd=tah980808 其中其中“tahsj”是服务器名,是服务器名,“collegemis”是数据库名,是数据库名,“sa”是用户名

31、,是用户名,“tah980808”是用户密码。是用户密码。使用信任安全模式的连接字符串的一般形式如下:使用信任安全模式的连接字符串的一般形式如下:driver=sql server; server=tahsj; database=collegemis;uid =;pwd= 与普通安全模式相比,只是不需要提供用户名和密码。与普通安全模式相比,只是不需要提供用户名和密码。(2)通过)通过odbc连接到连接到access数据库数据库 通过通过odbc连接到连接到access数据库的连接字符串的一般形式如下:数据库的连接字符串的一般形式如下:driver=microsoft access driver

32、 (*.mdb);dbq= & app.path & jiaoxue.mdb该字符串的作用是连接到应用程序所在目录下的该字符串的作用是连接到应用程序所在目录下的jiaoxue.mdb数据库。数据库。10.2.3 连接到数据库的方法连接到数据库的方法3通过通过ole-db建立连接建立连接使用使用ole-db建立连接的连接字符串原型如下:建立连接的连接字符串原型如下:providerprovidername;user idusername;passworduserpassword;initial catalogdatabasename;datasource=servernameprovider:指

33、定连接数据库的类型。如果连接的是:指定连接数据库的类型。如果连接的是access数据库,则此数据库,则此处应赋值处应赋值 microsoft jet oledb 4.0;如果连接的为;如果连接的为sql server 2000数数据库,则此处赋值为据库,则此处赋值为sqloledb.l。 userid:用户:用户id为访问数据库的用户名,例如为访问数据库的用户名,例如sql server 2000中的中的sa用户。用户。password:用户密码是指与用户:用户密码是指与用户id对应的密码。对应的密码。 initialcatalog:根据连接数据库的不同,该参数也有不同的含义,在:根据连接数据

34、库的不同,该参数也有不同的含义,在sql server 2000中是指默认打开的数据库名称。中是指默认打开的数据库名称。 datasource:指定连接的数据库服务器名称。不但可以是数据库服务器的:指定连接的数据库服务器名称。不但可以是数据库服务器的名称,还可以是数据库服务器的名称,还可以是数据库服务器的ip地址或数据库服务器的主机名称,若是本机地址或数据库服务器的主机名称,若是本机可以指定为可以指定为或或local。 10.2.3 连接到数据库的方法连接到数据库的方法(1)通过)通过ole-db连接到连接到sql server数据库数据库通过通过ole-db连接到连接到sq

35、l server数据库的连接字符串的一般形式如下:数据库的连接字符串的一般形式如下:provider=sqloledb.1;user id=sa;password=tah980808; initial catalog=collegemis; data source=tahsj其中,其中,provider关键字用于指定要连接关键字用于指定要连接sql server 2000服务器;服务器;user idsa和和passwordtah980808分别为连接到分别为连接到sql server 2000数据库服务数据库服务器的用户名和密码;器的用户名和密码;initial catalog指定打开的数据

36、库为指定打开的数据库为collegemis;datasource指定指定sql server数据库服务器为数据库服务器为tahsj。 (2)通过)通过ole-db连接到连接到access数据库数据库 通过通过ole-db连接到连接到access数据库的连接字符串一般形式如下:数据库的连接字符串一般形式如下:provider=microsoft.jet.oledb.4.0;data source= & app.path & jiaoxue.mdb; & user id=;password=其中其中“user id=”后面写用户名,后面写用户名,“password=”后面写用户口令。后面写用户口令

37、。n10.3.1 recordset对象简介对象简介n10.3.2 recordset对象的属性对象的属性n10.3.3 recordset对象的方法对象的方法n10.3.4 访问访问recordset对象中的字段的方法对象中的字段的方法10.3.1 recordset对象简介对象简介1.概述概述recordset 对象表示的是来自基本表或对象表示的是来自基本表或sql命令查询结果的记录集,命令查询结果的记录集,由一系列的行和列组成,每一行称为一条记录,每一列称为一个字段。由一系列的行和列组成,每一行称为一条记录,每一列称为一个字段。在任何时候,在任何时候,recordset 对象所指的当前记

38、录均为记录集中的单个记录。对象所指的当前记录均为记录集中的单个记录。可以使用可以使用 recordset 对象进行数据操作,如移动记录、添加记录、删除对象进行数据操作,如移动记录、添加记录、删除记录、查询记录等。由于数据提供者所支持的功能不同,某些记录、查询记录等。由于数据提供者所支持的功能不同,某些 recordset 方法或属性有可能无法使用。方法或属性有可能无法使用。 10.3.1 recordset对象简介对象简介2.四种不同的游标类型四种不同的游标类型 (1)动态游标)动态游标用于查看其他用户所作的添加、更改和删除,并用于不依用于查看其他用户所作的添加、更改和删除,并用于不依赖书签的

39、赖书签的 recordset中各种类型的移动。如果提供者支持,可使用书签。中各种类型的移动。如果提供者支持,可使用书签。 (2)键集游标)键集游标其行为类似动态游标,不同的只是禁止查看其他用户添加其行为类似动态游标,不同的只是禁止查看其他用户添加的记录,并禁止访问其他用户删除的记录,其他用户所作的数据更改将依然的记录,并禁止访问其他用户删除的记录,其他用户所作的数据更改将依然可见。它始终支持书签,因此允许可见。它始终支持书签,因此允许recordset中各种类型的移动。中各种类型的移动。 (3)静态游标)静态游标提供记录集合的静态副本以查找数据或生成报告。它始终提供记录集合的静态副本以查找数据

40、或生成报告。它始终支持书签,因此允许支持书签,因此允许recordset中各种类型的移动。其他用户所作的添加、中各种类型的移动。其他用户所作的添加、更改或删除将不可见。更改或删除将不可见。 (4)仅向前游标)仅向前游标除仅允许在记录中向前滚动之外,其行为类似动态游标。除仅允许在记录中向前滚动之外,其行为类似动态游标。这样,当需要在这样,当需要在recordset中单程移动时就可提高性能。中单程移动时就可提高性能。 注意:注意:在打开在打开recordset对象之前可通过设置对象之前可通过设置cursortype属性值来选择游标类属性值来选择游标类型,或使用型,或使用open方法传递方法传递cu

41、rsortype参数来选择游标类型。部分数据提供者参数来选择游标类型。部分数据提供者不支持所有游标类型,如果没有指定游标类型,不支持所有游标类型,如果没有指定游标类型,ado将默认打开仅向前游标。将默认打开仅向前游标。10.3.2 recordset对象的属性对象的属性1absolutepage、pagecount与与pagesize属性属性用来控制对用来控制对recordset对象的分页。对象的分页。pagesize属性是一个长整型属属性是一个长整型属性,用于设置或返回一页中的记录数;性,用于设置或返回一页中的记录数;pagecount属性是一个长整型属属性是一个长整型属性,用于返回性,用于

42、返回recordset对象包含的数据页数。即使最后页是不完整的页,对象包含的数据页数。即使最后页是不完整的页,该页也会计入到该页也会计入到pagecount属性值中。如果属性值中。如果recordset对象不支持该属对象不支持该属性,属性值为性,属性值为-1,以表明,以表明pagecount无法确定;无法确定;absolutepage属性也是属性也是一个长整型属性,用来设置或返回当前记录所在的页。其值在一个长整型属性,用来设置或返回当前记录所在的页。其值在1到到pagecount之间,或者取如表之间,或者取如表10-3所示的常量值。当设置该属性时,记所示的常量值。当设置该属性时,记录指针将移动

43、到指定页的第一个记录。录指针将移动到指定页的第一个记录。10.3.2 recordset对象的属性对象的属性2absoluteposition和和recordcount属性属性 recordcount属性是一个长整型属性,用来返回属性是一个长整型属性,用来返回recordset对象中的对象中的记录数目。若记录数目。若ado无法确定记录数,则该属性值为无法确定记录数,则该属性值为1。absoluteposition属性也是一个长整型属性,用来返回当前记录的位置或设置目标记录相对于属性也是一个长整型属性,用来返回当前记录的位置或设置目标记录相对于第一条记录的位置,其取值在第一条记录的位置,其取值在

44、1到到recordcount之间。之间。 注意:注意:若对记录集进行了分页,则若对记录集进行了分页,则eof、bof、recordcount属性值分别代属性值分别代表的是当前页的信息,而不是整个记录集的信息。表的是当前页的信息,而不是整个记录集的信息。 3activeconnection属性属性 该属性可以是该属性可以是recordset对象相对应的对象相对应的connection对象,也可以是对象,也可以是connection对象的连接字符串。如果是第二种情况,则相应的对象的连接字符串。如果是第二种情况,则相应的connection对象将被隐式要创建,创建时所需要的参数均使用默认值。对象将被

45、隐式要创建,创建时所需要的参数均使用默认值。 10.3.2 recordset对象的属性对象的属性4cachesize属性属性 该属性是一个长整型属性,用来设置或返回缓存在本地内存中的记录数。该属性是一个长整型属性,用来设置或返回缓存在本地内存中的记录数。使用使用cachesize属性可控制数据提供者在缓存中所保存的记录的数目,并可控属性可控制数据提供者在缓存中所保存的记录的数目,并可控制一次恢复到本地内存的记录数。例如,如果制一次恢复到本地内存的记录数。例如,如果cachesize为为30,首次打开,首次打开recordset对象后,数据提供者将前面对象后,数据提供者将前面30条记录调入本地

46、内存。当在条记录调入本地内存。当在recordset对象中移动时,数据提供者返回本地内存缓冲区中的数据;一旦移对象中移动时,数据提供者返回本地内存缓冲区中的数据;一旦移动超过缓存中最后的记录,提供者便将数据源中随后的动超过缓存中最后的记录,提供者便将数据源中随后的30条记录恢复到缓存。条记录恢复到缓存。 5cursortype属性属性 用来设置或返回用来设置或返回record对象中使用的游标类型,是一个枚举类型值,对象中使用的游标类型,是一个枚举类型值,枚举常量及其含义如表枚举常量及其含义如表10-4所示。所示。 10.3.2 recordset对象的属性对象的属性6editmode属性属性

47、该属性用来返回当前记录的编辑状态,也是一个枚举型的常量。该属性用来返回当前记录的编辑状态,也是一个枚举型的常量。取值及其含义如表取值及其含义如表10-5所示。所示。 10.3.2 recordset对象的属性对象的属性7filter属性属性 是一个字符串属性,存放的是一个逻辑表达式,用来进行记录的筛选,记是一个字符串属性,存放的是一个逻辑表达式,用来进行记录的筛选,记录集中只有符合该条件的记录才会参加处理。给该属性赋值的一般形式如下:录集中只有符合该条件的记录才会参加处理。给该属性赋值的一般形式如下:recordsetobj.filter=条件字符串条件字符串其中,条件字符串由其中,条件字符串

48、由“fieldname operator value”格式的子句(如格式的子句(如“stuname=赵勇赵勇”)组成,各子句之间通过逻辑运算符连接。)组成,各子句之间通过逻辑运算符连接。 (1)fieldname 必须为必须为 recordset 中的有效字段名。如果字段名包含空格,中的有效字段名。如果字段名包含空格,必须用方括号将字段名括起来。必须用方括号将字段名括起来。注意点:注意点:(2)operator 必须为关系运算符,即:必须为关系运算符,即:、=、= 或或 like。(3)value 是用于与字段值(如是用于与字段值(如 smith、#8/24/95#、12.345 或或 $50

49、.00)进)进行比较的值。字符串使用单引号作为定界符,日期使用行比较的值。字符串使用单引号作为定界符,日期使用“#”号作为定界符,对号作为定界符,对于数字,可以使用小数点、货币符号和科学记数法。如果于数字,可以使用小数点、货币符号和科学记数法。如果operator为为 like,value还可以使用通配符(还可以使用通配符(“*”和和“%”)。)。value 不可为不可为 null。 注意:注意:如果数据提供者是如果数据提供者是sql server,日期型数据用,日期型数据用“”括起来,而不是用括起来,而不是用“#”括起来。但对于括起来。但对于microsoft access数据库,日期型数据

50、一定要用数据库,日期型数据一定要用“#”括括起来。起来。 10.3.2 recordset对象的属性对象的属性8locktype属性属性主要用在多用户环境中,实现并发控制,属性值表示记录使用的锁定类型,主要用在多用户环境中,实现并发控制,属性值表示记录使用的锁定类型,是一个枚举类型的值,取值及其含义如表是一个枚举类型的值,取值及其含义如表10-6所示。由于该属性默认值为所示。由于该属性默认值为adlockreadonly,所以要创建一个可以更新的记录集,该属性值必须设置。,所以要创建一个可以更新的记录集,该属性值必须设置。 10maxrecords属性属性该属性是一个长整型属性,用来设定记录集

51、对象能够包含的最多记录个数,该属性是一个长整型属性,用来设定记录集对象能够包含的最多记录个数,默认设置为零,表明返回所有所需的记录。默认设置为零,表明返回所有所需的记录。recordset对象关闭时,对象关闭时,maxrecords 属性为可读可写,打开时为只读。属性为可读可写,打开时为只读。 10.3.2 recordset对象的属性对象的属性11sort属性属性 字符串属性,用来设置或返回字符串属性,用来设置或返回recordset对象记录集中记录的排列顺序。对象记录集中记录的排列顺序。该属性值是一个字段名或用逗号分隔的多个字段名,在字段名后可选加空格和该属性值是一个字段名或用逗号分隔的多

52、个字段名,在字段名后可选加空格和用于指定字段排列顺序的关键字用于指定字段排列顺序的关键字 ascending(升序)(升序) 和和 descending(降序)。(降序)。 12source属性属性用来设置或返回用来设置或返回recordset 对象中数据的来源,可以是对象中数据的来源,可以是command对象、对象、sql 语句、表的名称或存储过程。语句、表的名称或存储过程。source 属性对于关闭的属性对于关闭的 recordset 是可是可读可写的,对于打开的读可写的,对于打开的 recordset 是只读的。如果设置是只读的。如果设置 source 属性为属性为 command 对象

53、,对象,recordset 对象的对象的 activeconnection 属性将继承指定属性将继承指定 command 对象的对象的 activeconnection 属性的值。但是,读取属性的值。但是,读取 source 属性将属性将不返回不返回 command 对象,而是返回对象,而是返回command 对象的对象的 commandtext 属性值。属性值。 10.3.2 recordset对象的属性对象的属性13state属性属性该属性是一个长整型属性,用来指示该属性是一个长整型属性,用来指示recordset对象的状态是连接、执行对象的状态是连接、执行或是获取,是一个只读属性。取值及

54、其含义如表或是获取,是一个只读属性。取值及其含义如表10-7所示。所示。 recordset 对象的对象的state属性可以是组合值。例如,如果正在执行语句,属性可以是组合值。例如,如果正在执行语句,该属性将是该属性将是adstateopen和和adstateexecuting的组合值。的组合值。 10.3.3 recordset对象的方法对象的方法1cancel方法方法 使用该方法将终止异步执行的使用该方法将终止异步执行的execute或或open方法。如果试图终止的方法。如果试图终止的execute或或open方法不是异步执行的方法,则调用该方法将会产生运行错误。方法不是异步执行的方法,则

55、调用该方法将会产生运行错误。该方法的使用格式如下:该方法的使用格式如下: object.cancel其中,其中,object是要终止执行操作的对象名是要终止执行操作的对象名 。 使用该方法可取消对当前记录所作的更改或放弃新添加的记录。如果在调使用该方法可取消对当前记录所作的更改或放弃新添加的记录。如果在调用用addnew方法后使用了方法后使用了cancelupdate 方法,则调用方法,则调用addnew之前的当前记之前的当前记录将再次成为当前记录。如果尚未更改当前记录或添加新记录,调用录将再次成为当前记录。如果尚未更改当前记录或添加新记录,调用cancelupdate方法将产生错误。方法将产

56、生错误。 该方法的使用格式如下:该方法的使用格式如下:recordsetobj.cancelupdate 2cancelupdate方法方法10.3.3 recordset对象的方法对象的方法3cancelbatch方法方法 使用该方法将取消批更新模式下记录集中所有挂起的更新。如果记录集处使用该方法将取消批更新模式下记录集中所有挂起的更新。如果记录集处于立即更新模式,调用不带于立即更新模式,调用不带adaffectcurrent的的cancelbatch将产生错误。该将产生错误。该方法的使用格式如下:方法的使用格式如下: recordsetobj.cancelbatch affectrecor

57、ds 其中,其中,recordsetobj记录集对象变量名。参数记录集对象变量名。参数affectrecords决定该方法决定该方法影响的记录数影响的记录数 。10.3.3 recordset对象的方法对象的方法4clone方法方法该方法用来复制一份现有的该方法用来复制一份现有的recordset对象。该方法的使用格式如下:对象。该方法的使用格式如下:set recordsetobj2= recordsetobj1.clone (locktype)其中,其中, recordsetobj1代表原来的记录集,代表原来的记录集, recordsetobj2代表复制的代表复制的记录集。该方法有一个参数

58、记录集。该方法有一个参数locktype,该参数只能取两个值:,该参数只能取两个值:adlockunspecified(默认值。使用与原始类型相同的锁定类型创建副本)和(默认值。使用与原始类型相同的锁定类型创建副本)和adlockreadonly(副本创建为只读)。(副本创建为只读)。5open方法方法该方法用来执行一条该方法用来执行一条sql语句或者调用数据库的存储过程以返回一个记录语句或者调用数据库的存储过程以返回一个记录集。集。open方法的使用格式如下:方法的使用格式如下: recordsetobj.open source, activeconnection, cursortype,

59、locktype, options其中其中recordsetobj是记录集对象变量名,是记录集对象变量名,source、activeconnection、 cursortype、locktype与与recordset对象相应属性的含义完全一致。对象相应属性的含义完全一致。options参数的含义同参数的含义同connection的的execute方法中的方法中的options参数含义基本参数含义基本一致一致。10.3.3 recordset对象的方法对象的方法6requery方法方法该方法用来重新执行查询以便重新生成该方法用来重新执行查询以便重新生成recordset对象。该方法的使对象。该方

60、法的使用格式如下:用格式如下: recordsetobj.requery其中其中recordsetobj是记录集对象变量名是记录集对象变量名 。7updatebatch方法方法该方法的作用是将所有挂起的批更新写入到数据库。该方法的使用格式如该方法的作用是将所有挂起的批更新写入到数据库。该方法的使用格式如下:下: recordsetobj.updatebatch affectrecords其中其中recordsetobj是执行该方法的记录集对象变量名是执行该方法的记录集对象变量名 10.3.3 recordset对象的方法对象的方法8resync方法方法用现行数据库中的数据刷新当前用现行数据库中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论