利用ADO开发数据库应用程序.ppt

上传人:牧羊曲112 文档编号:5932756 上传时间:2023-09-05 格式:PPT 页数:71 大小:1.03MB
返回 下载 相关 举报
利用ADO开发数据库应用程序.ppt_第1页
第1页 / 共71页
利用ADO开发数据库应用程序.ppt_第2页
第2页 / 共71页
利用ADO开发数据库应用程序.ppt_第3页
第3页 / 共71页
利用ADO开发数据库应用程序.ppt_第4页
第4页 / 共71页
利用ADO开发数据库应用程序.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《利用ADO开发数据库应用程序.ppt》由会员分享,可在线阅读,更多相关《利用ADO开发数据库应用程序.ppt(71页珍藏版)》请在三一办公上搜索。

1、第10章,第10章 利用ADO开发数据库应用程序,数据库应用教程,10.1 ADO对象模型概述,10.2 Connection对象,10.3 RecordSet对象,第10章 利用ADO开发数据库应用程序,10.4 Command对象,10.5 Field对象和Fields集合,10.6 Error对象和Errors集合,10.7 ADO对象综合应用例,10.1.1 ADO数据访问技术的基本概念,10.1.2 ADO模型的对象,10.1.3 加载ADO对象库,10.1 ADO对象模型概述,10.1.1 ADO数据访问技术的基本概念,1.概况,ADO(ActiveX Data Object)是微

2、软最新的数据访问组件(微软数据访问组件简称MDAC)的一部分,MDAC的常用版本有MDAC 2.5和MDAC 2.7,ADO的最新的版本ADO.NET也包含在MDAC 2.7中。,ADO是基于OLE-DB(Object Linking&Embedded Database)之上的面向对象的数据访问模型,OLE-DB是微软公司开发的一种高性能的、基于COM的低层的数据访问接口,其作用是向应用程序提供一个统一的数据访问方法,而不必考虑数据源的具体格式和存储方式。由于OLE-DB直接调用数据提供者开发的数据驱动程序,所以具有性能高、速度快等特点。,ADO组件包含了所有的可以被OLE-DB标准接口描述的

3、数据类型,通过ADO的方法和属性可以为应用程序提供统一的数据访问方法和接口。,ADO对象模型还具有可扩展性,当把数据库上层应用程序移植到不同的数据库平台上时,只需要更换连接数据库的驱动程序,而不需要对上层程序作任何修改。,10.1.1 ADO数据访问技术的基本概念,2.特点,(1)支持批处理(Batch Updating),可以分批处理客户端提出的请求。,(2)支持存储过程(Stored Procedures),可使用输入参数给存储过程输入值,使用输出参数取得存储过程的返回值。,(3)可以使用存储过程或批处理SQL指令,实现返回多组记录集的功能。,10.1.1 ADO数据访问技术的基本概念,3

4、.ADO操作数据库的物理机制,10.1.2 ADO模型的对象,1.概况,ADO模型的对象库主要由7个基本对象和4个集合对象构成,七个基本对象分别是Connection、Recordset、Command、Field、Property、Parameter和Error,4个集合对象是Errors、Fields、Parameters和Properties。,2.对象之间的关系,10.1.2 ADO模型的对象,3.基本对象,(1)Connection(连接)对象,Connection 对象代表与数据源的连接,它包含了关于目标数据库数据提供者(Data Provider)的相关信息。可利用Connect

5、ion对象管理与数据库的连接,包括打开连接、关闭连接、运行SQL语句等。,(2)Recordset(记录集)对象,Recordset对象表示的是来自基本表或命令执行结果的记录的集合,由一系列字段组成。在任何时候,Recordset对象所指的当前记录均为集合内的单个记录。可以把Recordset对象看成是内存中的二维表。,10.1.2 ADO模型的对象,(3)Command(命令)对象,Command对象定义了将对数据源执行的指定命令,通过已建立的连接发出“命令”可以以某种方式来操作数据源。一般情况下,通过命令对象可以在数据源中添加、删除或更新数据,或者从数据库中检索数据,并以记录集的形式返回。

6、,(4)Field(字段)对象,如果将记录集看作二维网格,每一字段(列)就是一个Field对象,Field对象具有名称、数据类型和值等属性,在值属性中包含了来自数据源的真实数据。,(5)Property(属性)对象,Property对象表示ADO对象的特征,每个ADO对象都由一组唯一的Property(属性)对象来描述或控制对象的行为。,属性有内置和动态两种类型。内置属性是ADO对象的一部分并且随时可用。动态属性则由特别的数据提供者添加到ADO对象的属性集合中,仅在数据库提供者被使用时才能存在。,10.1.2 ADO模型的对象,(6)Parameter(参数)属性,命令需要的变量部分即“参数”

7、,参数可以在命令发布之前进行更改。例如,可重复发出相同的数据检索命令(如检索成绩为某等级的学生数据,等级用一个变量DJ来表示,此处的DJ就可看成是一个参数),但每一次均可更改指定的检索信息(如第一次DJ为“良好”,第二次DJ为“优秀”等)。,在ADO中,Parameter对象用于管理与基于参数化查询或存储过程的Command对象相关联的参数。,(7)Error对象,应用程序执行过程中,错误的发生是不可避免的,错误通常是由于无法建立连接、执行命令或对某些状态(例如,试图使用没有初始化的记录集)的对象进行操作时发生。ADO对象模型用Error对象体现错误,任意给定的错误都会产生一个或多个Error

8、对象。Error对象包含单个操作产生的错误的详细信息,还包含数据库驱动程序出错时的扩展信息。,经常使用的ADO对象有:Connection 对象、RecordSet对象、Command对象、Fields对象和Field对象。,10.1.2 ADO模型的对象,4集合对象,ADO还提供了集合对象,在集合对象中可以包含基本对象。使用集合方法可按名称(文本字符串)或序号(整型数)对集合中的对象进行检索。,(1)Errors集合对象,Connection对象具有Errors集合,其中包含Error对象。,(2)Parameters对象,Command对象具有Parameters集合,包含应用于Comma

9、nd对象的所有Parameter对象。,10.1.2 ADO模型的对象,(3)Fields对象,Recordset对象具有Fields集合,包含Recordset对象中的所有Field对象。,(4)Properties对象,Connection、Command、Recordset和Field对象都具有Properties集合,它包含所有属于各个对象的Property对象。,10.1.3 加载ADO对象库,加载方法,在Visual Basic 6.0中,有两种ADO对象库:一种叫ADODB,包含在MSADO*.DLL(*代表版本号)中;一种叫做ADOR,包含在MSADOR15.DLL中。引用这两

10、种类型库的方法是执行“工程”菜单中的“引用”命令,将出现“引用”对话框,在该对话框中选中“Microsoft ActiveX Data Object 2.7 Library(ADODB)”或“Microsoft ActiveX Data Object Recordset 2.7 Library(ADOR)”,然后按“确定”按钮即可。,10.2.1 Connection对象的常用属性,10.2.2 Connection对象的常用方法,10.2.3 连接到数据库的方法,10.2 Connection对象,10.2 Connection对象,作用概述,Connection对象可以用来在应用程序和数据

11、库之间建立一条数据传输“通道”,利用这个“通道”,应用程序就可使用Command对象、Recordse对象等来对Connection对象所连接的数据库进行插入、删除、更新和查询等操作。,打电话例,应用程序和数据库是通话的双方,建立一个Connection对象就像是应用程序拿起了“话筒”,打开一个Connection对象就好象应用程序在“拨号”,“拨号”即连接打开成功,应用程序和数据库就可以“通话”了,即应用程序就可以使用Command对象及Recordset对象操作数据库了。,10.2.1 Connection对象的常用属性,1ConnectionString属性,该属性是一个可读写Strin

12、g类型的属性,用来设置或返回数据提供者或服务提供者打开到数据源的连接所需要的特定信息,即连接字符串。,2ConnectionTimeout属性,该属性是一个可读写Long类型的属性,用来指定中止一个失败的Connection对象的Open方法调用之前必须等待的时间,默认值为15秒。,3CommandTimeout属性,该属性是一个可读写的Long类型的属性,用来指定中止某个相关Command对象的Execute方法调用之前必须等待的时间。默认值为30秒。,10.2.1 Connection对象的常用属性,4State属性,该属性是一个可读写Long类型的属性,用来指定连接是处于打开状态,还是处

13、于关闭状态或中间状态。,5Version属性,该属性是一个字符串型的属性,用来返回ADO对象库的版本号。,10.2.2 Connection对象的常用方法,1BeginTrans方法,该方法用于启动新的事务,格式如下:level=ConnectionObj.BeginTrans()或 ConnectionObj.BeginTrans其中ConnectionObj是连接对象变量名,如果该方法作为函数调用则返回指示事务嵌套层次的长整型数据。,2CommitTrans方法,该方法用于保存所有更改并结束当前事务。也可以使用它启动新事务。格式如下:ConnectionObj.CommitTrans,3R

14、ollbackTrans方法,该方法用于取消当前事务中所做的所有操作并结束事务。它也可以启动新事务。格式如下:ConnectionObj.RollbackTrans,10.2.2 Connection对象的常用方法,4Open方法,用来打开到数据源的连接。语法格式如下:ConnectionObj.Open ConnectionString,UserID,Password,OpenOptions,参数ConnectionString是一个字符串,包含连接信息;参数UserID也是一个字符串属性,包含建立连接时所使用的用户名称;参数Password也是一个字符串属性,包含建立连接时所有的用户密码;

15、OpenOptions参数使用场合不多,这里不再介绍。UserID和Password属性的值通常可在ConnectionString属性中一起设置。,设置连接参数有两种方法:一种是设置连接对象的ConnectionString属性,然后调用Connection对象的不带参数的Open方法;二是在调用Connection对象的Open方法时使用可选的参数ConnectionString,此时ConnectionString属性将自动继承该参数的值。,10.2.2 Connection对象的常用方法,5Close方法,调用Close方法可关闭Connection对象。使用格式如下:Connecti

16、onObj.Close,关闭连接并非将它从内存中删除,此后还可以更改它的属性设置并且还可以再次打开。要将对象从内存中完全删除,可将对象变量赋值为Nothing,例如:Set ConnectionObj=Nothing,使用Close方法关闭Connection对象的同时,也将关闭与此连接相关联的任何活动Recordset对象。关闭Connection对象后,调用任何需要与数据源连接的方法都将产生错误。,10.2.2 Connection对象的常用方法,6Execute方法,该方法用来执行查询、SQL 语句、存储过程或特定提供者的文本命令等。,格式1:,ConnectionObj.Execute

17、 CommandText,RecordsAffected,Options,格式2:,Set RecordsetObj=ConnectionObj.Execute(CommandText,RecordsAffected,Options),参数说明:,该方法有三个参数,参数CommandText是一个字符串,包含要执行的SQL语句、表名、存储过程或特定提供者的文本命令;RecordsAffected是一个长整型的可选参数,里面存放着调用该方法所影响的记录数目;参数Options也是一个可选的长整型参数,用来说明CommandText 参数中包含的是什么。,10.2.2 Connection对象的常

18、用方法,7Cancel方法,该方法用来终止异步执行的Execute或Open方法调用。如果试图终止的方法不是异步执行的方法,则将会出现运行错误。,8OpenSchema方法,该方法用来返回数据库的纲要信息。,10.2.3 连接到数据库的方法,概况:,连接到数据库的关键是形成连接字符串,然后把连接字符串赋值给Connection对象的ConnectionString属性,或在调用连接对象的Open方法时,把连接字符串作为它的ConnectionString参数值。下面主要介绍连接字符串的设置方法,采用的数据库类型为Microsoft Access数据库和SQL Server数据库。,10.2.3

19、 连接到数据库的方法,1通过ODBC的DSN建立连接,(1)通过ODBC的DSN连接到SQL Server数据库,通过ODBC的DSN连接到SQL Server数据库的连接字符串的一般形式如下:DSN=SQLCollegeMIS;uid=sa;pwd=tah980808其中,“SQLCollegeMIS”是已经创建好的SQL Server数据库的DSN,“sa”是用户名(系统管理员),“tah980808”是用户(系统管理员)密码。,(2)通过ODBC的DSN连接到Access数据库,通过ODBC的DSN连接到Access数据库的连接字符串的一般形式如下:DSN=AccessCMIS;uid=

20、;pwd=其中,“AccessCMIS”是已经创建好的Microsoft Access数据库的DSN。,10.2.3 连接到数据库的方法,2通过ODBC建立连接,(1)通过ODBC连接到SQL Server数据库,该方式的连接字符串有两种:普通安全模式和信任安全模式。使用普通安全模式的连接字符串的一般形式如下:Driver=SQL Server;Server=tahsj;Database=CollegeMIS;uid=sa;pwd=tah980808 其中“tahsj”是服务器名,“CollegeMIS”是数据库名,“sa”是用户名,“tah980808”是用户密码。使用信任安全模式的连接字符

21、串的一般形式如下:Driver=SQL Server;Server=tahsj;Database=CollegeMIS;uid=;pwd=与普通安全模式相比,只是不需要提供用户名和密码。,(2)通过ODBC连接到Access数据库,通过ODBC连接到Access数据库的连接字符串的一般形式如下:DRIVER=Microsoft Access Driver(*.mdb);DBQ=&App.Path&JiaoXue.mdb该字符串的作用是连接到应用程序所在目录下的JiaoXue.mdb数据库。,10.2.3 连接到数据库的方法,3通过OLE-DB建立连接,使用OLE-DB建立连接的连接字符串原型如

22、下:ProviderProviderName;User IDUserName;PasswordUserPassword;initial CatalogDatabaseName;DataSource=ServerName,Provider:指定连接数据库的类型。如果连接的是Access数据库,则此处应赋值 Microsoft Jet OLEDB 4.0;如果连接的为SQL Server 2000数据库,则此处赋值为SQLOLEDB.l。,UserID:用户ID为访问数据库的用户名,例如SQL Server 2000中的sa用户。,Password:用户密码是指与用户ID对应的密码。,Initia

23、lCatalog:根据连接数据库的不同,该参数也有不同的含义,在SQL Server 2000中是指默认打开的数据库名称。,DataSource:指定连接的数据库服务器名称。不但可以是数据库服务器的名称,还可以是数据库服务器的IP地址或数据库服务器的主机名称,若是本机可以指定为或Local。,10.2.3 连接到数据库的方法,(1)通过OLE-DB连接到SQL Server数据库,通过OLE-DB连接到SQL Server数据库的连接字符串的一般形式如下:Provider=SQLOLEDB.1;User ID=sa;Password=tah980808;Initial Catalog=Coll

24、egeMIS;Data Source=TAHSJ其中,Provider关键字用于指定要连接SQL Server 2000服务器;User IDsa和PasswordTAH980808分别为连接到SQL Server 2000数据库服务器的用户名和密码;Initial Catalog指定打开的数据库为CollegeMIS;DataSource指定SQL Server数据库服务器为TAHSJ。,(2)通过OLE-DB连接到Access数据库,通过OLE-DB连接到Access数据库的连接字符串一般形式如下:Provider=Microsoft.Jet.oledb.4.0;Data Source=P

25、assword=其中“User ID=”后面写用户名,“Password=”后面写用户口令。,10.3.1 Recordset对象简介,10.3.2 Recordset对象的属性,10.3.3 Recordset对象的方法,10.3 RecordSet对象,10.3.4 访问Recordset对象中的字段的方法,10.3.1 Recordset对象简介,1.概述,Recordset 对象表示的是来自基本表或SQL命令查询结果的记录集,由一系列的行和列组成,每一行称为一条记录,每一列称为一个字段。在任何时候,Recordset 对象所指的当前记录均为记录集中的单个记录。可以使用 Recordse

26、t 对象进行数据操作,如移动记录、添加记录、删除记录、查询记录等。由于数据提供者所支持的功能不同,某些 Recordset 方法或属性有可能无法使用。,10.3.1 Recordset对象简介,2.四种不同的游标类型,(1)动态游标用于查看其他用户所作的添加、更改和删除,并用于不依赖书签的 Recordset中各种类型的移动。如果提供者支持,可使用书签。,(2)键集游标其行为类似动态游标,不同的只是禁止查看其他用户添加的记录,并禁止访问其他用户删除的记录,其他用户所作的数据更改将依然可见。它始终支持书签,因此允许Recordset中各种类型的移动。,(3)静态游标提供记录集合的静态副本以查找数

27、据或生成报告。它始终支持书签,因此允许Recordset中各种类型的移动。其他用户所作的添加、更改或删除将不可见。,(4)仅向前游标除仅允许在记录中向前滚动之外,其行为类似动态游标。这样,当需要在Recordset中单程移动时就可提高性能。,注意:在打开Recordset对象之前可通过设置CursorType属性值来选择游标类型,或使用Open方法传递CursorType参数来选择游标类型。部分数据提供者不支持所有游标类型,如果没有指定游标类型,ADO将默认打开仅向前游标。,10.3.2 Recordset对象的属性,1AbsolutePage、PageCount与PageSize属性,用来控

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

29、tePosition和RecordCount属性,RecordCount属性是一个长整型属性,用来返回Recordset对象中的记录数目。若ADO无法确定记录数,则该属性值为1。AbsolutePosition属性也是一个长整型属性,用来返回当前记录的位置或设置目标记录相对于第一条记录的位置,其取值在1到RecordCount之间。,注意:若对记录集进行了分页,则Eof、Bof、RecordCount属性值分别代表的是当前页的信息,而不是整个记录集的信息。,3ActiveConnection属性,该属性可以是Recordset对象相对应的Connection对象,也可以是Connection对

30、象的连接字符串。如果是第二种情况,则相应的Connection对象将被隐式要创建,创建时所需要的参数均使用默认值。,10.3.2 Recordset对象的属性,4CacheSize属性,该属性是一个长整型属性,用来设置或返回缓存在本地内存中的记录数。使用CacheSize属性可控制数据提供者在缓存中所保存的记录的数目,并可控制一次恢复到本地内存的记录数。例如,如果CacheSize为30,首次打开Recordset对象后,数据提供者将前面30条记录调入本地内存。当在Recordset对象中移动时,数据提供者返回本地内存缓冲区中的数据;一旦移动超过缓存中最后的记录,提供者便将数据源中随后的30条

31、记录恢复到缓存。,5CursorType属性,用来设置或返回Record对象中使用的游标类型,是一个枚举类型值,枚举常量及其含义如表10-4所示。,10.3.2 Recordset对象的属性,6EditMode属性,该属性用来返回当前记录的编辑状态,也是一个枚举型的常量。取值及其含义如表10-5所示。,10.3.2 Recordset对象的属性,7Filter属性,是一个字符串属性,存放的是一个逻辑表达式,用来进行记录的筛选,记录集中只有符合该条件的记录才会参加处理。给该属性赋值的一般形式如下:RecordsetObj.Filter=条件字符串其中,条件字符串由“FieldName Opera

32、tor Value”格式的子句(如“StuName=赵勇”)组成,各子句之间通过逻辑运算符连接。,(1)FieldName 必须为 Recordset 中的有效字段名。如果字段名包含空格,必须用方括号将字段名括起来。,注意点:,(2)Operator 必须为关系运算符,即:、=、=或 LIKE。,(3)Value 是用于与字段值(如 Smith、#8/24/95#、12.345 或$50.00)进行比较的值。字符串使用单引号作为定界符,日期使用“#”号作为定界符,对于数字,可以使用小数点、货币符号和科学记数法。如果Operator为 LIKE,Value还可以使用通配符(“*”和“%”)。Va

33、lue 不可为 NULL。,注意:如果数据提供者是SQL Server,日期型数据用“”括起来,而不是用“#”括起来。但对于Microsoft Access数据库,日期型数据一定要用“#”括起来。,10.3.2 Recordset对象的属性,8LockType属性,主要用在多用户环境中,实现并发控制,属性值表示记录使用的锁定类型,是一个枚举类型的值,取值及其含义如表10-6所示。由于该属性默认值为adLockReadOnly,所以要创建一个可以更新的记录集,该属性值必须设置。,10MaxRecords属性,该属性是一个长整型属性,用来设定记录集对象能够包含的最多记录个数,默认设置为零,表明返回

34、所有所需的记录。Recordset对象关闭时,MaxRecords 属性为可读可写,打开时为只读。,10.3.2 Recordset对象的属性,11Sort属性,字符串属性,用来设置或返回Recordset对象记录集中记录的排列顺序。该属性值是一个字段名或用逗号分隔的多个字段名,在字段名后可选加空格和用于指定字段排列顺序的关键字 ASCENDING(升序)和 DESCENDING(降序)。,12Source属性,用来设置或返回Recordset 对象中数据的来源,可以是Command对象、SQL 语句、表的名称或存储过程。Source 属性对于关闭的 Recordset 是可读可写的,对于打开

35、的 Recordset 是只读的。如果设置 Source 属性为 Command 对象,Recordset 对象的 ActiveConnection 属性将继承指定 Command 对象的 ActiveConnection 属性的值。但是,读取 Source 属性将不返回 Command 对象,而是返回Command 对象的 CommandText 属性值。,10.3.2 Recordset对象的属性,13State属性,该属性是一个长整型属性,用来指示Recordset对象的状态是连接、执行或是获取,是一个只读属性。取值及其含义如表10-7所示。,Recordset 对象的State属性可以

36、是组合值。例如,如果正在执行语句,该属性将是adStateOpen和adStateExecuting的组合值。,10.3.3 Recordset对象的方法,1Cancel方法,使用该方法将终止异步执行的Execute或Open方法。如果试图终止的Execute或Open方法不是异步执行的方法,则调用该方法将会产生运行错误。该方法的使用格式如下:Object.Cancel其中,Object是要终止执行操作的对象名。,使用该方法可取消对当前记录所作的更改或放弃新添加的记录。如果在调用AddNew方法后使用了CancelUpdate 方法,则调用AddNew之前的当前记录将再次成为当前记录。如果尚未

37、更改当前记录或添加新记录,调用CancelUpdate方法将产生错误。该方法的使用格式如下:RecordsetObj.CancelUpdate,2CancelUpdate方法,10.3.3 Recordset对象的方法,3CancelBatch方法,使用该方法将取消批更新模式下记录集中所有挂起的更新。如果记录集处于立即更新模式,调用不带adAffectCurrent的CancelBatch将产生错误。该方法的使用格式如下:RecordsetObj.CancelBatch AffectRecords 其中,RecordsetObj记录集对象变量名。参数AffectRecords决定该方法影响的记

38、录数。,10.3.3 Recordset对象的方法,4Clone方法,该方法用来复制一份现有的Recordset对象。该方法的使用格式如下:Set RecordsetObj2=RecordsetObj1.Clone(LockType)其中,RecordsetObj1代表原来的记录集,RecordsetObj2代表复制的记录集。该方法有一个参数LockType,该参数只能取两个值:adLockUnspecified(默认值。使用与原始类型相同的锁定类型创建副本)和adLockReadOnly(副本创建为只读)。,5Open方法,该方法用来执行一条SQL语句或者调用数据库的存储过程以返回一个记录集

39、。Open方法的使用格式如下:RecordsetObj.Open Source,ActiveConnection,CursorType,LockType,Options其中RecordsetObj是记录集对象变量名,Source、ActiveConnection、CursorType、LockType与RecordSet对象相应属性的含义完全一致。Options参数的含义同Connection的Execute方法中的Options参数含义基本一致。,10.3.3 Recordset对象的方法,6Requery方法,该方法用来重新执行查询以便重新生成Recordset对象。该方法的使用格式如下:

40、RecordsetObj.Requery其中RecordsetObj是记录集对象变量名。,7UpdateBatch方法,该方法的作用是将所有挂起的批更新写入到数据库。该方法的使用格式如下:RecordsetObj.UpdateBatch AffectRecords其中RecordsetObj是执行该方法的记录集对象变量名,10.3.3 Recordset对象的方法,8Resync方法,用现行数据库中的数据刷新当前Recordset对象中的数据,使用该方法将当前Recordset中的记录与现行数据库重新同步。这在使用静态或仅向前的游标但希望看到现行数据库中的改动时十分有用。与Requery方法不

41、同,Resync方法不重新执行生成Recordset对象的查询,因此,现行数据库中刚添加的新记录将不可见。该方法的使用格式如下:RecordsetObj.Resync AffectRecords,ResyncValues,10.3.3 Recordset对象的方法,9Supports方法,该方法是将返回一个布尔型值,用来指示Recordset对象是否支持某种功能。该方法的使用格式如下:Boolean变量=RecordsetObj.Supports(CursorOptions)其中Boolean变量是用来接收返回值的布尔型变量,RecordsetObj是执行该方法的记录集对象变量名,参数Curs

42、orOption的作用是指出是否支持的功能。,如果Recordset对象支持表10-10所示的相应常量的功能,那么Supports方法将返回True,否则将返回False。,10.3.4 访问Recordset对象中的字段的方法,访问Recordset对象中的字段,可使用字段名,也可以使用字段编号,字段编号从0开始。,假设Recordset对象StuRs的第一个字段名为“StuNo”,则访问该字段可使用下列方法:,StuRs(StuNo),StuRs(0),StuRs.Fields(StuNo),StuRs.Fields(0),StuRs1.Fields.Item(StuNo),StuRs1.

43、Fields.Item(0),【例10-1】使用ADO的相应对象把SQL Server数据库CollegeMIS中的Teacher表中的数据显示出来。程序设计界面如图10-5所示,程序的运行界面如图10-6所示。程序运行时,单击“显示”按钮将在MsFlexGrid控件中显示Teacher表中的所有教师信息;单击“关闭”按钮,将关闭ADO的相应对象并结束程序运行。,可在窗体的Load事件中通过Connection对象连接到SQL Server数据库CollegeMIS;在“显示”按钮的Click事件中通过Recordset对象产生记录集,记录集中的内容为表Teacher中的所有记录,并把记录集中

44、的数据在MSFlexGrid控件中显示出来。要在MSFlexGrid控件中显示记录集的内容,可通过循环把记录集中的各字段的内容依次赋值给MsFlexGrid的MatrixText属性的各个元素。为使程序通用,把在MSFlexGrid控件中显示记录集的内容定义成一个通用过程,过程应有两个参数,一个是要Recordset对象,另一个是MSFlexGrid对象。,实现思路:,程序代码参见实例。,10.4.1 Command对象简介,10.4.2 Command对象的常用属性,10.4.3 Command对象的常用方法,10.4 Command对象,10.4.1 Command对象简介,1作用,通常使

45、用Command对象对数据库进行查询操作和对数据表进行增、删、改操作,利用它可以执行SQL语句、存储过程等,而且利用它还可以进行参数化查询。,(1)可以通过调用Connection对象的Execute方法或调用Recordset对象的Open方法来执行查询,但若要多次执行命令文本,或使用查询参数时,则必须使用Command对象。,2使用Command对象的注意点:,(2)可把Command对象的ActiveConnection属性设置为有效的连接字符串以创建 Command对象,此时ADO仍将隐式创建Connection对象。如果多个Command对象使用相同的连接字符串,ADO也将为每个Co

46、mmand对象创建新的Connection对象。因此当需要让多个Command对象与同一个Connection对象相连时,必须显式地创建并打开Connection对象,然后把该Connection对象变量赋给相应的Command对象的ActiveConnection 属性。,10.4.2 Command对象的常用属性,1ActiveConnection属性,该属性是一个可读可写的属性,用来指示Command对象通过哪个Connection对象操作数据库,取值可以是Connection对象名或连接字符串。在将该属性有效设置之前,不得调用Command对象的Execute方法,否则将会产生错误。,

47、该属性是一个字符串属性,用来设置或返回Command对象所要执行的命令,可以是SOL语句、表名称或存储过程名,默认值为(零长度字符串)。需注意一点:使用的SQL 语句必须是数据提供者能够支持的特定版本。,2CommandText属性,3CommandTimeout属性,该属性是一长整型属性,用来设置等待命令执行的时间(单位为秒),默认值为30。如果在指定的时间内命令尚未执行成功,将终止执行并产生错误。,10.4.2 Command对象的常用属性,4CommandType属性,是一个可读写的枚举型属性,用来指定Command对象要执行命令的类型。能够使用的枚举常量有:AdCmdText、AdCm

48、dTable、AdCmdTableDirect、AdCmdStoredProc、AdCmdUnknown、AdCommandFile和AdExecuteNoRecords。其中前5项的含义与表10-2中的同名常量相同。使用AdCommandFile,表示CommandText中存放的是一个保存的Recordset文件名,使用AdExecuteNoRecords,表示CommandText为不返回记录集的命令或存储过程。,5Prepared属性,该属性是一个布尔型属性,用来设置或返回是否保存命令的编译版本。值为True时,在首次执行命令时将创建命令的编译版本,值为False时,将不创建命令的编译

49、版本。,6State属性,用来指示当前对象的状态。,10.4.3 Command对象的常用方法,1Execute方法,执行在CommandText属性中给出的命令。如果CommandText属性给出的是返回记录集的查询,执行所产生的结果将存储在新的Recordset对象中。如果CommandText属性给出的不是返回记录集的命令,也将返回一个Recordset对象,不过该Recordset对象是关闭的。某些应用程序语言允许忽略该返回值,可不需把返回值赋值给Recordset对象。,对于返回记录集的Command对象,该方法的调用格式如下:,Set recordsetobj=commandobj

50、.Execute(RecordsAffected,Parameters,Options),对于不返回记录集的Command对象,该方法的调用格式如下:,commandobj.Execute RecordsAffected,Parameters,Options,2Cancel方法,该方法的作用是取消挂起的异步调用的Command对象的Execute方法。使用方法同Recordset对象的Cancel方法。,【例10-2】为CollegeMIS数据库编写一个通用查询程序,程序的设计界面如图10-7所示,程序的运行界面如图10-8所示。程序运行时,在第一个组合框中选择字段名,在第二个组合框中选择比较

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号