ADO对象模型编程_第1页
ADO对象模型编程_第2页
ADO对象模型编程_第3页
ADO对象模型编程_第4页
ADO对象模型编程_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

ADO对象模型ADO,即ActiveX数据对象,实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口,可以使用任何一种ODBC数据源,即不只适合于SQLServer,Oracle,Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。什么是ADOADO是为Microsoft最新最强大的数据访问范例OLEDB而设计的,是基于OLEDB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法,是一个便于使用的应用程序层接口。ADO是独立于开发工具和开发语言的简单而且容易使用的数据接口。ADO对象可以在所有支持COM和OLE的平台上使用,如VB,VC++,VBScript和Java等等。OLEDB是一种底层数据访问界面接口,它是一套部件对象模型(COM)接口,用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C++的开发者开发定制的数据库组件。OLEDB接口支持大量可应用于数据源的DBMS功能,提供了对任何数据库的高效的访问,包括关系数据库和非关系数据库、电子邮件和文件系统,以及文本文件和图形等,使数据源能够共享其数据。ADO使用了与。人。相似的约定和特性,但ADO当前并不支持DAO的所有功能。ADO具有非常简单的对象模型,如图1.1所示,包括以下7个对象:图1.1ADO数据模型Connection,Command,Parameter,Recordset,Field,Property,Error此外,还包含以下4个集合:Fields,Properties,Parameters,ErrorsADO的核心是。onnection,Recordset和Command^象。

Connection对象ADOConnection对象用于创建一个到达某个数据源的开放连接。通过此连接,您可以对一个数据库进行访问和操作。如果需要多次访问某个数据库,应当使用 Connection对象来建立一个连接。也可以经由一个Command或Recordset对象传递一个连接字符串来创建某个连接。不过,此类连接仅仅适合一次具体的简单的查询。ProgID:setobjConnection=Server.CreateObject("ADODB.connection")Connection对象的属性属性描述Attributes设置或返回Connection对象的属性。CommandTimeout指示在终止尝试和产生错误之前执行命令期间需等待的时间。ConnectionString设置或返回用于建立连接数据源的细节信息。ConnectionTimeout指示在终止尝试和产生错误前建立连接期间所等待的时间。CursorLocation设置或返回游标服务的位置。DefaultDatabase指示Connection对象的默认数据库。IsolationLevel指示Connection对象的隔离级别。Mode设置或返回provider的访问权限。Provider设置或返回Connection对象提供者的名称。State返回一个描述连接是打开还是关闭的值。Version返回ADO的版本号。(1) Attributes属性设置或返回Long值。Attributes属性为读/写,并且其值可以是一个或多个XactAttributeEnum值的和。默认值为零(0)。语法:object.AttributesXactAttributeEnum枚举类型:常量值描述adXactAbortRetaining262144当调用RollbackTrans,自动启动一个新事务。adXactCommitRetaining131072当调用CommitTrans,自动启动新事务。(2) CommandTimeout属性指示执行命令期间在终止尝试和产生错误之前需等待的时间。语法:object.CommandTimeout设置和返回值:设置或返回Long值,该值指示等待命令执行的秒数。默认值为30。说明:用Connection对象或Command对象的CommandTimeout属性来允许因网络拥挤或服务器负载过重产生的延迟而取消Execute方法调用。如果在CommandTimeout属性设置的时间间隔内未执行完命令,将产生错误,并且ADO取消该命令。如果将属性设置为零,ADO将一直等待到命令执行完毕。请确保正在为其编写代码的提供者和数据源支持CommandTimeout功能。Connection对象的CommandTimeout设置对同一Connection中Command对象上的CommandTimeout设置没有影响,即Command对象的CommandTimeout属性不继承Connection对象的CommandTimeout值。在Connection对象上,打开Connection后,CommandTimeout属性将保持为读/写。(3) ConnectionString属性ConnectionString属性可设置或返回用于建立到数据源的连接的信息。注释:不能同时使用Provider和FileName参数。语法:objconn.ConnectionString=〃para1=value;para2=value;etc;〃ConnectionString属性有5个参数:参数描述ProviderFileName用于连接的提供者的名称。提供者特有的文件(例如,持久保留的数据源对象)的名称,这些文件中包含预置的连接信息。RemoteProvider当打开客户端连接时使用的提供者的名称。(仅限于远程数据服务。)RemoteServer当打开客户端连接时使用的服务器的路径名称。(仅限于远程数据服务。)url标识资源(比如文件或目录)的绝对URL。(4) ConnectionTimeout属性设置或返回Long值,ConnectionTimeout属性可设置或返回在终止尝试和产生错误之前打开连接需要等待的秒数。默认是15秒。语法:objconn.ConnectionTimeout说明:如果由于网络拥挤或服务器负载过重引起的延迟而有必要取消连接尝试,请使用Connection对象的ConnectionTimeout属性。如果在ConnectionTimeout属性设置的时间内未打开连接,将产生错误,并且ADO取消该尝试。如果将该属性设置为0,ADO将一直等待到连接打开。请确保正在为其编写代码的提供者支持ConnectionTimeout功能。ConnectionTimeout属性在连接关闭时为读/写,在连接打开时为只读。CursorLocation属性CursorLocation属性可设置或返回一个long值,该值指示游标服务的位置。可被设置为CursorLocationEnum值之一。默认值是AdUseServer。游标用于:控制记录定位控制其他用户对数据库所作的更改的可视性•控制数据可更新性指示游标服务的位置。CursorLocationEnum枚举类型:常量值描述adUseNone1不使用游标服务。(此常量已作废并且只是为了向后兼容才出现。)adUseServer2默认值。使用数据提供者或驱动程序提供的游标。这些游标有时很灵活,可以额外感知其他人对数据源所做的更改。但是,MicrosoftCursorServiceforOLEDB的某些功能(例如断开Recordset对象)不能用服务器端游标模拟,这些功能在此设置中将不可用。adUseClient3使用本地游标库提供的客户端的游标。本地游标服务通常允许执行驱动程序提供的游标所不允许的许多功能,因此使用此设置可以充分利用即将启用的功能。为进行向后兼容,亦支持同义字adUseClientBatch。说明:此属性允许在可以访问提供者的多个游标库之间选择。通常情况下,可以选择客户端游标库中的游标或者选择位于服务器上的游标。只有在设置了属性后,此属性设置才会影响所建立的连接。更改CursorLocation属性不会影响现有的连接。注释:Recordset对象将从与它们相关联的连接上自动继承此设置。注释:此属性在Connection或已关闭的Recordset上为读/写,在打开的Recordset上为只读。语法:objConnection.CursorLocationobjRecordset.CursorLocationDefaultDatabase属性指示Connection对象的默认数据库。设置和返回值:设置或返回String值,该值是特定Connection对象上的默认数据库的名称。说明:用DefaultDatabase属性设置或返回特定Connection对象上的默认数据库的名称。如果有默认数据库,SQL字符串将使用无限制的语法访问该数据库中的对象。若要访问未在DefaultDatabase属性中指定的数据库中的对象,对象名称必须与所需数据库的名称相匹配。连接时,提供者将把默认数据库信息写入DefaultDatabase属性。某些提供者对每个连接只允许一个数据库,在此情况下无法更改DefaultDatabase属性。某些数据源和提供者可能不支持此项功能,并可能返回错误或空字符串。

IsolationLevel属性指示Connection对象的隔离级别。设置和返回值:设置或返回IsolationLevelEnum值。默认值为adXactChaos。IsolationLevelEnum枚举类型:常量值描述adXactUnspecified-1无法使用指定的隔离级别,因为提供者正在使用不同的隔离级别,而且该级别无法被确定。adXactChaosadXactBrowse16256无法覆盖更高级别的事务。可以从一个事务中查看其他事务中未提交的更改。adXactReadUncommittedadXactCursorStability2564096与adXactBrowse相同。只能从一个事务中查看其他事务中提交的更改。adXactReadCommitted4096与adXactCursorStability相同。adXactRepeatableRead65536不能从一个事务中查看其他事务中所作的修改,但是重新查询可以检索新的Recordset对象。adXactIsolated1048576该事务与其他事务隔离执行。adXactSerializable1048576与adXactIsolated相同。说明:用IsolationLevel属性设置Connection对象的隔离级别。该设置直到下次调用BeginTrans方法时才生效。如果请求的隔离级别不可用,提供者可能返回下一个更高的隔离级别。IsolationLevel属性为读/写。Mode属性Mode属性可设置或返回一个ConnectModeEnum值,该值指示在Connection,Record或Stream对象中修改数据的权限。在对象关闭时,此属性为读写,在对象打开时为只读。ConnectModeEnum枚举类型:常量值描述adModeUnknown0默认值。权限尚未设置或不能确定权限。adModeRead1只读权限。adModeWrite2只写权限。adModeReadWrite3读/写权限。

adModeShareDenyRead4禁止其他人以读权限打开连接。adModeShareDenyWrite8禁止其他人以写权限打开连接。adModeShareExclusive12禁止其他人打开连接。adModeShareDenyNone16允许其他人以任何权限打开连接。不拒绝其他人的读或写访问。adModeRecursive0x400000与adModeShareDenyNone,adModeShareDenyWrite或adModeShareDenyRead一起使用,对当前Record的所有子记录设置权限。Connection对象-默认是adModeUnknownRecord对象-默认是adModeReadStream对象-默认是adModeRead或adModeUnknown注释:该属性只能在Connection对象关闭时设置。Provider属性指示Connection对象的提供者的名称。设置和返回值:设置或返回String值,指示提供者的名称。说明:用Provider属性设置或返回连接的提供者名称。也可用ConnectionString属性的内容或Open方法的ConnectionString参数来设置此属性。但是,当调用Open方法时,如果在多个地方指定提供者,将可能导致无法预测的结果。如果未指定提供者,该属性将默认使用MSDASQL(MicrosoftOLEDBProviderforODBC)。Provider属性在连接关闭时为读/写,在连接打开时为只读。只有当打开Connection对象或访问Connection对象的Properties集合时,设置才生效。如果设置无效,则将产生错误。Provider代码:Provider代码ProviderADSDSOObjectActiveDirectoryServicesMicrosoft.Jet.OLEDB.4.0MicrosoftJetdatabasesMSDAIPP.DSO.1MicrosoftInternetPublishingMSDAORAOracledatabasesMSDAOSPMSDASQLSimpletextfilesMicrosoftOLEDBproviderforODBCMSDataShapeMicrosoftDataShapeMSPersistLocallysavedfiles

SQLOLEDBMicrosoftSQLServerState属性State属性可返回一个值,该值描述对象的当前状态是打开、关闭、正在连接、正在执行还是正在检索数据。返回的是ObjectStateEnum值的Long值。默认值为adStateClosed。ObjectStateEnum枚举类型:常数值描述adStateClosed0对象已关闭。adStateOpen1对象已打开。adStateConnecting2对象正在连接。adStateExecuting4对象正在执行命令。adStateFetching8正在检索对象的行。此属性可用于Command,Connection,Record,Recordset以及Stream对象。State属性可以是值的组合。例如,如果正在执行某个语句,此属性将有一个adStateOpen和adStateExecuting的组合值。State属性为只读。语法:object.StateVersion属性指示ADO版本号。语法:version=objconn.Version返回值:返回String值,用于指示版本。说明:使用Version属性返回ADO的版本号。Connection对象的方法方法描述BeginTrans开始一个新事务。Cancel取消一次执行。Close关闭一个连接。CommitTransExecute保存任何更改并结束当前事务。执行查询、SQL语句、存储过程或provider具体文本。Open打开一个连接。

OpenSchema从provider返回有关数据源的schema信息。RollbackTrans取消当前事务中所作的任何更改并结束事务。BeginTrans、CommitTrans、RollbackTrans方法这些事务方法按如下方法管理Connection对象中的事务进程:BeginTrans—开始新事务。CommitTrans—保存更改并结束当前事务。它也可能启动新事务。RollbackTrans—取消当前事务中所做的更改并结束事务。它也可能启动新事务。语法:level=object.BeginTrans()object.BeginTransobject.CommitTransobject.RollbackTrans返回值:BeginTrans可以作为函数调用,用于返回指示事务嵌套层次的Long变量。说明:对于支持嵌套事务的提供者,在打开的事务中调用BeginTrans方法将启动新的嵌套事务。返回值将指示嵌套层次:返回值为“1”指示打开了顶层事务(即此事务未嵌套在其他事务中),返回值为“2”指示打开了第二层事务(嵌套在顶层事务中的事务),依此类推。调用CommitTrans或RollbackTrans只影响最新打开的事务;在处理任何更高层事务之前必须关闭或回卷当前事务。如果想要以独立单元保存或取消对源数据所做的一系列更改,请对Connection对象使用这些方法。例如,要进行转帐,从一个帐户中减去某个数额并将对等数额添加到另一个帐户中。如果任何一个更新失败,都将导致帐户收支不平衡。在打开的事务中进行这些更改可确保只能选择进行全部更改或不作任何更改。Cancel方法Cancel方法可取消方法调用的执行。Cancel方法可为不同的对象终止不同的任务。下面的表格列出了当此方法被调用时被终止的任务:对象被终止的任务CommandExecute。注释:在Cancel方法被调用之前,Execute方法的Options参数必须被设置为adAsyncExecute或者adAsyncFetch,否则会发生run-time错误。ConnectionRecordExecute或Open。注释:在Cancel方法被调用之前,Open方法的Options参数必须被设置为adSyncConnect,Execute方法的Options参数必须被设置为adAsyncExecute或者adAsyncFetch,否则会发生run-time错误。CopyRecord,DeleteRecord,MoveRecord,或者Open。RecordsetStreamOpenOpenClose方法Close方法用于关闭Connection对象、Record对象、Recordset对象或者Stream对象,以释放系统资源。注释:关闭对象不会将其从内存中删除;随后可以更改其属性设置并再次将其打开。要从内存中彻底清除对象,请在关闭对象后将对象变量设置为Nothing(在VisualBasic中)。语法:object.CloseExecute方法Execute方法可执行指定查询、SQL语句、存储过程或提供者特有的文本。如果CommandText参数指定按行返回的查询,那么执行产生的任何结果都将存储在新的Recordset对象中。如果此命令不是以行返回的查询,提供者将返回关闭的Recordset对象。注释:返回的Recordset对象始终是只读的、仅向前的游标。提示:如果需要具有更多功能的Recordset对象,应首先创建Recordset对象,设置所需属性,然后使用Recordset对象的Open方法执行查询并返回所需的游标类型。语法:对于以行返回的命令字符串:Setrecordset=connection.Execute(CommandText,RecordsAffected,Options)语法:对于不是以行返回的命令字符串:connection.ExecuteCommandText,RecordsAffected,Options参数描述commandtext必需。String值,包含要执行的SQL语句、存储过程、URL或提供者特有的文本。此外,仅当提供者被SQL识别时才可使用表名称。例如,如果使用“Customers”作为表名称,则ADO将自动预先根据标准SQLSelect语法构成“SELECT*FROMCustomers”,并将其作为T-SQL语句传递给提供者。RecordsAffected可选。Long变量,提供者向其返回操作影响的记录数目。options可选。Long值,指示提供者计算CommandText参数的方式。该值可以是一个或多个CommandTypeEnum或ExecuteOptionEnum值的位掩码。默认是adCmdUnspecified。CommandTypeEnum枚举类型:常数值描述adCmdUnspecified-1不指定命令类型的参数。adCmdText1按命令或存储过程调用的文本定义计算CommandTextoadCmdTable2按表名计算CommandText,该表的列全部是由内部生成的SQL查询返回的。adCmdStoredProc4按存储过程名计算CommandTextoadCmdUnknown8默认值。指示CommandText属性中命令的类型未知。adCmdFile256按持久存储的Recordset的文件名计算CommandTexto仅与Recordset.Open或Requery使用。adCmdTableDirect512按表名计算CommandText,该表的列被全部返回。仅与Recordset.Open或Requery使用。如需使用Seek方法,Recordset必须通过adCmdTableDirect

打开。该值不能与ExecuteOptionEnum值adAsyncExecute结合。ExecuteOptionEnum枚举类型:常量值描述adOptionUnspecified-1指示未指定命令。adAsyncExecute0x10指示命令将异步执仃。此值不能与CommandTypeEnum值adCmdTableDirect结合。adAsyncFetch0x20指示在CacheSize属性中指定的初始数量以后的剩余行将被异步检索。adAsyncFetchNonBlocking0x40指示检索时主线程从不会阻塞。如果未检索到所请求的行,当前行将自行移动到文件结尾。如果从包含持久存储Recordset的Stream中打开Recordset,那么adAsyncFetchNonBlocking将不起作用;该操作将同步进行并发生阻塞。当adCmdTableDirect选项被用于打开Recordset时,adAsynchFetchNonBlocking不起作用。adExecuteNoRecordsadExecuteStream指示命令文本是不返回行的命令或存储过程(例如,仅插入数据的命令)。如果检索到任何行,它们将被放弃且不返回。通常与CommandTypeEnum值adCmdText或adCmdStoredProc组合在一起。adExecuteNoRecords只能作为可选参数传递给Command或ConnectionExecute方法。把它用作Command对象的CommandType属性的参数将产生错误。指示命令执行的结果应作为流来返回。adExecuteStream只能作为可选参数传递给CommandExecute方法。adExecuteRecord指示CommandText是返回单一行的命令或存储过程,此行应作为Record对象来返回。(5)Open方法Open方法可打开一个到数据源的连接。当连接打开时,可以对数据源执行命令。语法:connection.Openconnectionstring,userID,password,options参数描述connectionstring可选。一个包含有关连接的信息的字符串值。该字符串由一系列被分号隔开的

userIDparameter=value语句组成的。有关有效设置的详细信息,请参阅ConnectionString属性。可选。一个字符串值,包含建立连接时要使用的用户名称。password可选。一个字符串值,包含建立连接时要使用的密码。options可选。一个ConnectOptionEnum值,确定应在建立连接之后(同步)还是应在建立连接之前(异步)返回本方法。ConnectOptionEnum枚举类型:常数值描述adConnectUnspecified-1默认值。同步打开连接。adAsyncConnect16异步打开连接。ConnectComplete事件可以用来确定连接何时可用。(6)OpenSchema方法OpenSchema方法可返回Recordset对象,该对象包含有关数据源的模式信息。举例,schema信息可包括表的名称,表中的列名,每列的数据类型。Recordset将以只读、静态游标模式打开。语法: Setrs=objconn.OpenSchema(querytype,criteria,schemaid)参数描述querytype必需。任意SchemaEnum值,表示要运行的模式查询的类型。注释:OLEDB规范只要求二个SchemaEnum值得到支持:adSchemaTables,adSchemaColumns以及adSchemaProviderTypes。criteriaschemaid可选。每个QueryType选项的查询约束的数组,如SchemaEnum中列出的内容。OLEDB规范未定义的提供者模式查询的GUID。如果QueryType被设置为adSchemaProviderSpecific,则需要此参数。否则,将不使用匕。SchemaEnum枚举类型:QueryType值值描述Criteria值adSchemaProviderSpecific-1如果提供者定义自己的非标准模式查询,则将使用该常量。ProviderspecificadSchemaAsserts0返回目录中定义的断言。CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMEadSchemaCatalogs1返回与可通过DBMS访问CATALOG_NAME

的目录相关的物理属性。adSchemaCharacterSets2返回目录中定义的字符集。CHARACTER_SET_CATALOGCHARACTER_SET_SCHEMACHARACTER_SET_NAMEadSchemaCollations3返回目录中定义的字符序列。COLLATION_CATALOGCOLLATION_SCHEMACOLLATION_NAMEadSchemaColumns4返回目录中定义的表(包括视图)的列。TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEadSchemaCheckConstraints5返回目录中定义的校验约束。CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMEadSchemaConstraintColumnUsage6返回目录中定义的列,这些列由引用约束、唯一约束、校验约束和断言使用。TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEadSchemaConstraintTableUsage7返回目录中定义的表,这些表由引用约束、唯一约束、校验约束和断言使用。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEadSchemaKeyColumnUsage8返回目录中定义的,被约束为关键字的列。CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEAdSchemaReferentialConstraints9返回目录中定义的引用约束。CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMEadSchemaTableConstraints10返回目录中定义的表约束。CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMETABLE_CATALOGTABLE_SCHEMATABLE_NAMECONSTRAINT_TYPEadSchemaColumnsDomainUsage11返回目录中定义的列,这些列依赖于该目录中定义的域。DOMAIN_CATALOGDOMAIN_SCHEMADOMAIN_NAMECOLUMN_NAMEadSchemaIndexes12返回目录中定义的索引。TABLE_CATALOGTABLE_SCHEMAINDEX_NAMETYPETABLE_NAMEadSchemaColumnPrivileges13返回目录中定义的表的列具有的特权TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEGRANTORGRANTEEadSchemaTablePrivileges14返回目录中定义的表的列具有的特权。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEGRANTORGRANTEE

adSchemaUsagePrivileges15返回目录中定义的对象的USAGE特权。OBJECT_CATALOGOBJECT_SCHEMAOBJECT_NAMEOBJECT_TYPEGRANTORGRANTEEadSchemaProcedures16返回目录中定义的过程。PROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMEPROCEDURE_TYPEadSchemaSchemata17返回模式(数据库对象)。CATALOG_NAMESCHEMA_NAMESCHEMA_OWNERadSchemaSQLLanguages18返回目录中定义的SQL实现数据处理(SQL-implementationprocessingdata)所支持的一致性级别、选项和方 -1—I0NoneadSchemaStatistics19返回目录中定义的统计。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEadSchemaTables20返回目录中定义的可存取的表(包括视图)。TABLE_CATALOGTABLE_SCHEMATABLE_NAMETABLE_TYPEadSchemaTranslations21返回目录中定义的可访问的字符转换。TRANSLATION_CATALOGTRANSLATION_SCHEMATRANSLATION_NAMEadSchemaProviderTypes22返回数据提供者支持的(基本)数据类型。DATA_TYPEBEST_MATCHadSchemaViews23返回目录中定义的可访问的视图。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEadSchemaViewColumnUsage24返回目录中定义的相关列,在这些列上可查看表。VIEW_CATALOGVIEW_SCHEMAVIEW_NAMEadSchemaViewTableUsageadSchemaProcedureParameters2526返回目录中定义的属于给定用户的相关表,在这些表上可查看表。VIEW_CATALOGVIEW_SCHEMAVIEW_NAMEPROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMEPARAMETER_NAME返回过程参数和返回代码的信息。adSchemaForeignKeys27返回给定用户在目录中定义的外键列。PK_TABLE_CATALOGPK_TABLE_SCHEMAPK_TABLE_NAMEFK_TABLE_CATALOGFK_TABLE_SCHEMAFK_TABLE_NAMEadSchemaPrimaryKeys28返回给定用户在目录中定义的主键列。PK_TABLE_CATALOGPK_TABLE_SCHEMAPK_TABLE_NAMEadSchemaProcedureColumns29返回行集合中列的信息,该行集合由过程返回。PROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMECOLUMN_NAMEadSchemaDBInfoKeywords30返回提供者特有的关键字None

的列表。adSchemaDBInfoLiterals31返回文本命令中使用的文字的列表,这些文字是提供者特有的。NoneadSchemaCubes32返回模式(如果提供者不支持模式则为目录)中可用立方的相关信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEadSchemaDimensions33CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_NAMEDIMENSION_UNIQUE_NAME返回给定立方中的维的信息。每一维对应一行。adSchemaHierarchies34返回维中可用分级结构的信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_NAMEHIERARCHY_UNIQUE_NAMEadSchemaLevels35返回维中可用级别的信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_UNIQUE_NAMELEVEL_NAMELEVEL_UNIQUE_NAMEadSchemaMeasures36返回可用度量的信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEMEASURE_NAMEMEASURE_UNIQUE_NAMEadSchemaProperties37为维的每一级别返回有关可用属性的信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_UNIQUE_NAMELEVEL_UNIQUE_NAMEMEMBER_UNIQUE_NAMEPROPERTY_TYPEPROPERTY_NAMEadSchemaMembers38返回可用成员的信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_UNIQUE_NAMELEVEL_UNIQUE_NAMELEVEL_NUMBERMEMBER_NAMEMEMBER_UNIQUE_NAMEMEMBER_CAPTIONMEMBER_TYPETREEOPERATORadSchemaTrustees39供日后使用。NoneConnection对象的事件注释:您无法使用VBScriptorJScript来处理事件(仅能使用VisualBasic、VisualC++以及VisualJ++语言处理事件)。

事件描述BeginTransComplete在BeginTrans操作之后被触发。CommitTransComplete在CommitTrans操作之后被触发。ConnectComplete在一个连接开始后被触发。Disconnect在一个连接结束之后被触发。ExecuteComplete在一条命令执行完毕后被触发。InfoMessage假如在一个ConnectionEvent操作过程中警告发生,则触发该事件。RollbackTransComplete在RollbackTrans操作之后被触发。WillConnect在一个连接开始之前被触发。WillExecute在一条命令被执行之前被触发。BeginTransComplete、CommitTransComplete、RollbackTransComplete事件事件是某个具体的操作发生后被自动调用的子例程。BeginTransComplete事件在BeginTrans调用被完成后触发。CommitTransComplete事件在CommitTrans调用被完成后触发。RollbackTransComplete事件在RollbackTrans调用被完成后触发。语法:BeginTransCompletetranslevel,objerror,status,objconnCommitTransCompleteobjerror,status,objconnRollbackTransCompleteobjerror,status,objconn参数描述translevelLong值,包含引发此事件的BeginTrans的新事务级别。objerrorstatus包含所发生错误的Error对象。注释:EventStatusEnum值必需设置为adStatusErrorsOccurred,以创建Error对象。规定事件执行的状态。取EventStatusEnum状态值。objconn引发此事件的Connection对象。EventStatusEnum枚举类型:常量值描述adStatusOK1引发该事件的操作成功。

adStatusErrorsOccurredadStatusCantDeny23引发该事件的操作失败。不能取消挂起操作。adStatusCancel4取消导致事件发生的操作。adStatusUnwantedEvent5在事件方法执行结束之前禁止后续的通知。ConnectComplete事件Disconnect事件ExecuteComplete事件InfoMessage事件WillConnect事件WillExecute事件Connection对象的集合ConnectionErrorsProperties果口描述Errors包含Connection对象的所有Error对象。Properties包含Connection对象的所有Property对象。Connection对象的Errors集合和Error对象Errors集合包含为响应单个提供者相关失败而创建的Error对象。说明:任何涉及ADO对象的操作都可能产生一个或多个提供者错误。在每个错误发生时,一个或多个Error对象将被放到Connection对象的Errors集合中。当另一个ADO操作产生错误时,Errors集合被清空,Error对象的新集合被放到Errors集合中。每个Error对象都表示一个特定的提供者错误,而不是ADO错误。ADO错误被记载到运行时例外处理机制中。例如,在MicrosoftVisualBasic中,发生ADO特有的错误将触发onError事件,并且出现在Error对象中。不产生错误的ADO操作对Errors集合没有影响。使用Clear方法手动清除Errors集合。Errors集合中的Error对象集合描述为响应单个语句而发生的所有错误。枚举Errors集合中的特定错误可使错误处理例程更精确地判断产生错误的原因和来源,并采取适当的步骤恢复。某些属性和方法返回警告,这些警告显示为Errors集合中的Error对象,但并不终止执行程序。先调用Errors集合的Clear方法,然后再调用Recordset对象的Resync、UpdateBatch或CancelBatch方法,Connection对象的Open方法,或设置Recordset对象的Filter属性。这样,就可以读取Errors集合的Count属性以测试返回的警告。1、Errors集合的属性属性描述Count指示集合中对象的数目。Item按名称或序号指示集合的特定成员。(1)Count属性指示集合中对象的数目。返回值:返回Long值。说明:使用Count属性确定在给定集合中有多少对象。因为集合成员的编号从)开始,因此应该始终以0成员开始并以Count属性值减1结束来编写循环代码。如果正在使用MicrosoftVisualBasic并想在不检查Count属性的情况下循环集合的成员,请使用ForEach...Next命令。如果Count属性为零,说明此集合中没有对象。(2)Item属性按名称或序号指示集合的特定成员。语法:Setobject=collection.Item(Index)返回值:返回对象引用。参数:Index是Variant表达式,计算集合中对象的名称或序号。说明:使用Item属性返回集合中的特定对象。如果Item属性未能在集合中找到与Index参数相对应的对象,将产生错误。同时,一些集合不支持命名的对象。对于这些集合,必须使用序号引用。Item属性是所有集合的默认属性。因此,下列语法形式可互换:collection.Item(Index) collection(Index)2、Errors集合的方法方法描述Clear删除Errors集合中的所有Error对象。Refresh更新集合中的对象以反映提供者提供的和特有的对象。(1)Clear方法删除Errors集合中的所有Error对象。语法:Errors.Clear说明:使用Errors集合的Clear方法以删除集合中所有现有的Error对象。发生错误时,ADO将自动清空Errors集合,并用基于新错误的Error对象填充集合。某些属性和方法返回警告,这些警告显示为Errors集合中的Error对象,但并不终止程序的执行。请先调用Errors集合的Clear方法,然后再调用Recordset对象的Resync、UpdateBatch或CancelBatch方法,调用Connection对象的Open方法,或设置Recordset对象的Filter属性。这样,就可以读取Errors集合的Count属性以测试返回的警告。(2)Clear方法更新集合中的对象以反映提供者提供的和特有的对象。语法:collection.Refresh说明:Refresh方法可以完成各种不同的任务,这取决于您从哪个集合调用它。2、Error对象的属性、方法和事件说明:任何涉及ADO对象的操作都可能产生一个或多个提供者错误。随着每个错误的发生,一个或多个Error对象被放在Connection对象的Errors集合中。当另一个ADO操作产生错误时,Errors集合被清空,新的Error对象集被放在Errors集合中。注意:每个Error对象都表示一个特定的提供者错误,而不是ADO错误。ADO错误被记录到运行时例外处理机制中。例如,在MicrosoftVisualBasic中,发生ADO特有的错误将引发OnError事件,并且出现在Error对象中。关于ADO错误的完整列表,请参阅ErrorValueEnum主题。可以读取Error对象的属性以获取关于每个错误的特定细节,包括以下内容:Description属性,包含错误的文本。这是默认的属性。Number属性,包含错误常量的Long整数值。Source属性,标识产生错误的对象。在向数据源发出请求后,如果Errors集合中有多个Error对象,那么该属性将非常有用。SQLState和NativeError属性,提供来自SQL数据源的信息。当发生提供者错误时,它被放在Connection对象的Errors集合中。ADO支持通过单个ADO操作返回多个错误,以允许提供者特有的错误信息。若要在错误处理程序中获取更多此类错误信息,请使用相应的语言或所在工作环境下的错误捕获功能,然后使用嵌套的循环来枚举Errors集合中每一个Error对象的属性。(1)Error对象的属性属性描述Description返回一个错误描述。HelpContext返回MicrosoftWindowshelpsystem中某个主题的内容ID。HelpFile返回MicrosoftWindowshelpsystem中帮助文件的完整路径。NativeError返回来自provider或数据源的错误代码。

Number返回可标识错误的一个唯一的数字。Source返回产生错误的对象或应用程序的名称。SQLState返回一个5字符的Number返回可标识错误的一个唯一的数字。Source返回产生错误的对象或应用程序的名称。SQLState返回一个5字符的SQL错误码。1、 Description属性可返回一个字符串,该字符串包含对错误的描述。这是Error对象的默认属性。提供者和ADO均可成为错误源。提供者负责向ADO传递特定的错误文本。对于接收到的每一个提供者错误或警告,ADO都会向Errors集合中添加一个Error对象。枚举Errors集合以跟踪提供者传递的错误。语法:strErrorText=objErr.Description2、 HelpContext属性可返回一个long值,该值帮助文件中主题的上下文ID。该属性允许您与Windows帮助系统结合,例如,您可以调用Windows的API帮助函数。如果没有与Windowshelpsystem结合的权限,HelpContext属性将返回零语法:lngErrorContext=objErr.HelpContext3、 HelpFile属性可返回一个字符串,该字符串包含MicrosoftWindowshelpsystem中帮助文件的完整路径。该属性允许您与Windows帮助系统结合,例如,您可以调用Windows的API帮助函数。如果没有与Windowshelpsystem结合的权限,HelpContext属性将返回””。语法:strErrorFile=objErr.HelpFile4、 NativeError属性可返回一个long值,该值是由提供者或数据源返回ADO的错误代码。使用NativeError属性对某个Error对象检索数据库特有的错误信息。例如,当配合使用MicrosoftODBCProviderforOLEDB和MicrosoftSQLServer数据库时,从SQLServer产生的原生错误代码将通过ODBC和ODBCProvider传递到ADONativeError属性。语法:lngErrorNative=objErr.NativeError5、 Number属性指示唯一标识Error对象的数字。返回Long值,该值可能对应于一个ErrorValueEnum常量。使用Number属性确定发生了哪个错误。属性的值是与错误条件对应的唯一数字。Errors集合以十六进制格式(例如0x80004005)或以Long值(例如2147467259)返回HRESULT。这些HRESULT由基本组件生成,如OLEDB,甚至是OLE本身。语法:lngErrorNumber=objErr.Number6、 Source属性可返回一个字符串值,指示最初产生错误的对象或应用程序的名称。语法:strErrorSource=objErr.Source7、 SQLState属性可返回一个字符串,该字符串包含由提供者返回的五个字符的SQL错误代码。语法:strErrorSQL=objErr.SQLState(2)Error对象的方法方法描述(3)Error对象的方法无Connection>Command、Recordset、Field对象的Properties集合和Property对象说明某些ADO对象包含有Property对象组成的Properties集合。每个Property对象对应于提供者特有的ADO对象的特性。1、Properties集合的属性属性描述Count指示集合中对象的数目。Item按名称或序号指示集合的特定成员。Count属性返回值:返回Long值。说明:使用Count属性确定在给定集合中有多少对象。因为集合成员的编号从零开始,因此应该始终以零成员开始并以Count属性值减1结束来编写循环代码。如果正在使用MicrosoftVisualBasic并想在不检查Count属性的情况下循环集合的成员,请使用ForEach...Next命令。如果Count属性为零,说明此集合中没有对象。Item属性按名称或序号指示集合的特定成员。语法:Setobject=collection.Item(Index)返回值:返回对象引用。

参数:参数:IndexVariant表达式,计算集合中对象的名称或序号说明:使用Item属性返回集合中的特定对象。如果Item属性未能在集合中找到与Index参数相对应的对象,将产生错误。同时,一些集合不支持命名的对象。对于这些集合,必须使用序号引用。Item属性是所有集合的默认属性。因此,下列语法形式可互换:collection.Item(Index)collection(Index)2、Properties集合的方法方法描述Refresh更新集合中的对象以反映提供者提供的和特有的对象。使用某些对象的Properties集合的Refresh方法预置该集合,其动态属性由提供者显露。这些属性提供有关提供者特有的功能信息,ADO支持的内置属性除外。3、Properties集合的事件无2Command对象ADOCommand对象用

温馨提示

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

评论

0/150

提交评论