ADO對象模型編程_第1頁
ADO對象模型編程_第2頁
ADO對象模型編程_第3頁
ADO對象模型編程_第4頁
ADO對象模型編程_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

ADO對象模型ADO,即ActiveX數(shù)據(jù)對象,實際是一種提供訪問各種數(shù)據(jù)類型的連接機制。ADO設(shè)計為一種極簡單的格式,通過ODBC的方法同數(shù)據(jù)庫接口,可以使用任何一種ODBC數(shù)據(jù)源,即不只適合于SQLServer,Oracle,Access等數(shù)據(jù)庫應(yīng)用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)文件。什么是ADOADO是為Microsoft最新最強大的數(shù)據(jù)訪問范例OLEDB而設(shè)計的,是基于OLEDB之上的技術(shù),因此ADO通過其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法,是一個便于使用的應(yīng)用程序?qū)咏涌?。ADO是獨立于開發(fā)工具和開發(fā)語言的簡單而且容易使用的數(shù)據(jù)接口。ADO對象可以在所有支持COM和OLE的平臺上使用,如VB,VC++,VBScript和Java等等。OLEDB是一種底層數(shù)據(jù)訪問界面接口,它是一套部件對象模型(COM)接口,用于第三方驅(qū)動程序商家開發(fā)輸出數(shù)據(jù)源到ADO技術(shù)的應(yīng)用程序或用于C++的開發(fā)者開發(fā)定制的數(shù)據(jù)庫組件。OLEDB接口支持大量可應(yīng)用于數(shù)據(jù)源的DBMS功能,提供了對任何數(shù)據(jù)庫的高效的訪問,包括關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫、電子郵件和文件系統(tǒng),以及文本文件和圖形等,使數(shù)據(jù)源能夠共享其數(shù)據(jù)。ADO使用了與。人。相似的約定和特性,但ADO當前并不支持DAO的所有功能。ADO具有非常簡單的對象模型,如圖1.1所示,包括以下7個對象:圖1.1ADO數(shù)據(jù)模型Connection,Command,Parameter,Recordset,F(xiàn)ield,Property,Error此外,還包含以下4個集合:Fields,Properties,Parameters,ErrorsADO的核心是。onnection,Recordset和Command^象。

Connection對象ADOConnection對象用于創(chuàng)建一個到達某個數(shù)據(jù)源的開放連接。通過此連接,您可以對一個數(shù)據(jù)庫進行訪問和操作。如果需要多次訪問某個數(shù)據(jù)庫,應(yīng)當使用 Connection對象來建立一個連接。也可以經(jīng)由一個Command或Recordset對象傳遞一個連接字符串來創(chuàng)建某個連接。不過,此類連接僅僅適合一次具體的簡單的查詢。ProgID:setobjConnection=Server.CreateObject("ADODB.connection")Connection對象的屬性屬性描述Attributes設(shè)置或返回Connection對象的屬性。CommandTimeout指示在終止嘗試和產(chǎn)生錯誤之前執(zhí)行命令期間需等待的時間。ConnectionString設(shè)置或返回用于建立連接數(shù)據(jù)源的細節(jié)信息。ConnectionTimeout指示在終止嘗試和產(chǎn)生錯誤前建立連接期間所等待的時間。CursorLocation設(shè)置或返回游標服務(wù)的位置。DefaultDatabase指示Connection對象的默認數(shù)據(jù)庫。IsolationLevel指示Connection對象的隔離級別。Mode設(shè)置或返回provider的訪問權(quán)限。Provider設(shè)置或返回Connection對象提供者的名稱。State返回一個描述連接是打開還是關(guān)閉的值。Version返回ADO的版本號。(1) Attributes屬性設(shè)置或返回Long值。Attributes屬性為讀/寫,并且其值可以是一個或多個XactAttributeEnum值的和。默認值為零(0)。語法:object.AttributesXactAttributeEnum枚舉類型:常量值描述adXactAbortRetaining262144當調(diào)用RollbackTrans,自動啟動一個新事務(wù)。adXactCommitRetaining131072當調(diào)用CommitTrans,自動啟動新事務(wù)。(2) CommandTimeout屬性指示執(zhí)行命令期間在終止嘗試和產(chǎn)生錯誤之前需等待的時間。語法:object.CommandTimeout設(shè)置和返回值:設(shè)置或返回Long值,該值指示等待命令執(zhí)行的秒數(shù)。默認值為30。說明:用Connection對象或Command對象的CommandTimeout屬性來允許因網(wǎng)絡(luò)擁擠或服務(wù)器負載過重產(chǎn)生的延遲而取消Execute方法調(diào)用。如果在CommandTimeout屬性設(shè)置的時間間隔內(nèi)未執(zhí)行完命令,將產(chǎn)生錯誤,并且ADO取消該命令。如果將屬性設(shè)置為零,ADO將一直等待到命令執(zhí)行完畢。請確保正在為其編寫代碼的提供者和數(shù)據(jù)源支持CommandTimeout功能。Connection對象的CommandTimeout設(shè)置對同一Connection中Command對象上的CommandTimeout設(shè)置沒有影響,即Command對象的CommandTimeout屬性不繼承Connection對象的CommandTimeout值。在Connection對象上,打開Connection后,CommandTimeout屬性將保持為讀/寫。(3) ConnectionString屬性ConnectionString屬性可設(shè)置或返回用于建立到數(shù)據(jù)源的連接的信息。注釋:不能同時使用Provider和FileName參數(shù)。語法:objconn.ConnectionString=〃para1=value;para2=value;etc;〃ConnectionString屬性有5個參數(shù):參數(shù)描述ProviderFileName用于連接的提供者的名稱。提供者特有的文件(例如,持久保留的數(shù)據(jù)源對象)的名稱,這些文件中包含預(yù)置的連接信息。RemoteProvider當打開客戶端連接時使用的提供者的名稱。(僅限于遠程數(shù)據(jù)服務(wù)。)RemoteServer當打開客戶端連接時使用的服務(wù)器的路徑名稱。(僅限于遠程數(shù)據(jù)服務(wù)。)url標識資源(比如文件或目錄)的絕對URL。(4) ConnectionTimeout屬性設(shè)置或返回Long值,ConnectionTimeout屬性可設(shè)置或返回在終止嘗試和產(chǎn)生錯誤之前打開連接需要等待的秒數(shù)。默認是15秒。語法:objconn.ConnectionTimeout說明:如果由于網(wǎng)絡(luò)擁擠或服務(wù)器負載過重引起的延遲而有必要取消連接嘗試,請使用Connection對象的ConnectionTimeout屬性。如果在ConnectionTimeout屬性設(shè)置的時間內(nèi)未打開連接,將產(chǎn)生錯誤,并且ADO取消該嘗試。如果將該屬性設(shè)置為0,ADO將一直等待到連接打開。請確保正在為其編寫代碼的提供者支持ConnectionTimeout功能。ConnectionTimeout屬性在連接關(guān)閉時為讀/寫,在連接打開時為只讀。CursorLocation屬性CursorLocation屬性可設(shè)置或返回一個long值,該值指示游標服務(wù)的位置??杀辉O(shè)置為CursorLocationEnum值之一。默認值是AdUseServer。游標用于:控制記錄定位控制其他用戶對數(shù)據(jù)庫所作的更改的可視性?控制數(shù)據(jù)可更新性指示游標服務(wù)的位置。CursorLocationEnum枚舉類型:常量值描述adUseNone1不使用游標服務(wù)。(此常量已作廢并且只是為了向后兼容才出現(xiàn)。)adUseServer2默認值。使用數(shù)據(jù)提供者或驅(qū)動程序提供的游標。這些游標有時很靈活,可以額外感知其他人對數(shù)據(jù)源所做的更改。但是,MicrosoftCursorServiceforOLEDB的某些功能(例如斷開Recordset對象)不能用服務(wù)器端游標模擬,這些功能在此設(shè)置中將不可用。adUseClient3使用本地游標庫提供的客戶端的游標。本地游標服務(wù)通常允許執(zhí)行驅(qū)動程序提供的游標所不允許的許多功能,因此使用此設(shè)置可以充分利用即將啟用的功能。為進行向后兼容,亦支持同義字adUseClientBatch。說明:此屬性允許在可以訪問提供者的多個游標庫之間選擇。通常情況下,可以選擇客戶端游標庫中的游標或者選擇位于服務(wù)器上的游標。只有在設(shè)置了屬性后,此屬性設(shè)置才會影響所建立的連接。更改CursorLocation屬性不會影響現(xiàn)有的連接。注釋:Recordset對象將從與它們相關(guān)聯(lián)的連接上自動繼承此設(shè)置。注釋:此屬性在Connection或已關(guān)閉的Recordset上為讀/寫,在打開的Recordset上為只讀。語法:objConnection.CursorLocationobjRecordset.CursorLocationDefaultDatabase屬性指示Connection對象的默認數(shù)據(jù)庫。設(shè)置和返回值:設(shè)置或返回String值,該值是特定Connection對象上的默認數(shù)據(jù)庫的名稱。說明:用DefaultDatabase屬性設(shè)置或返回特定Connection對象上的默認數(shù)據(jù)庫的名稱。如果有默認數(shù)據(jù)庫,SQL字符串將使用無限制的語法訪問該數(shù)據(jù)庫中的對象。若要訪問未在DefaultDatabase屬性中指定的數(shù)據(jù)庫中的對象,對象名稱必須與所需數(shù)據(jù)庫的名稱相匹配。連接時,提供者將把默認數(shù)據(jù)庫信息寫入DefaultDatabase屬性。某些提供者對每個連接只允許一個數(shù)據(jù)庫,在此情況下無法更改DefaultDatabase屬性。某些數(shù)據(jù)源和提供者可能不支持此項功能,并可能返回錯誤或空字符串。

IsolationLevel屬性指示Connection對象的隔離級別。設(shè)置和返回值:設(shè)置或返回IsolationLevelEnum值。默認值為adXactChaos。IsolationLevelEnum枚舉類型:常量值描述adXactUnspecified-1無法使用指定的隔離級別,因為提供者正在使用不同的隔離級別,而且該級別無法被確定。adXactChaosadXactBrowse16256無法覆蓋更高級別的事務(wù)??梢詮囊粋€事務(wù)中查看其他事務(wù)中未提交的更改。adXactReadUncommittedadXactCursorStability2564096與adXactBrowse相同。只能從一個事務(wù)中查看其他事務(wù)中提交的更改。adXactReadCommitted4096與adXactCursorStability相同。adXactRepeatableRead65536不能從一個事務(wù)中查看其他事務(wù)中所作的修改,但是重新查詢可以檢索新的Recordset對象。adXactIsolated1048576該事務(wù)與其他事務(wù)隔離執(zhí)行。adXactSerializable1048576與adXactIsolated相同。說明:用IsolationLevel屬性設(shè)置Connection對象的隔離級別。該設(shè)置直到下次調(diào)用BeginTrans方法時才生效。如果請求的隔離級別不可用,提供者可能返回下一個更高的隔離級別。IsolationLevel屬性為讀/寫。Mode屬性Mode屬性可設(shè)置或返回一個ConnectModeEnum值,該值指示在Connection,Record或Stream對象中修改數(shù)據(jù)的權(quán)限。在對象關(guān)閉時,此屬性為讀寫,在對象打開時為只讀。ConnectModeEnum枚舉類型:常量值描述adModeUnknown0默認值。權(quán)限尚未設(shè)置或不能確定權(quán)限。adModeRead1只讀權(quán)限。adModeWrite2只寫權(quán)限。adModeReadWrite3讀/寫權(quán)限。

adModeShareDenyRead4禁止其他人以讀權(quán)限打開連接。adModeShareDenyWrite8禁止其他人以寫權(quán)限打開連接。adModeShareExclusive12禁止其他人打開連接。adModeShareDenyNone16允許其他人以任何權(quán)限打開連接。不拒絕其他人的讀或?qū)懺L問。adModeRecursive0x400000與adModeShareDenyNone,adModeShareDenyWrite或adModeShareDenyRead一起使用,對當前Record的所有子記錄設(shè)置權(quán)限。Connection對象-默認是adModeUnknownRecord對象-默認是adModeReadStream對象-默認是adModeRead或adModeUnknown注釋:該屬性只能在Connection對象關(guān)閉時設(shè)置。Provider屬性指示Connection對象的提供者的名稱。設(shè)置和返回值:設(shè)置或返回String值,指示提供者的名稱。說明:用Provider屬性設(shè)置或返回連接的提供者名稱。也可用ConnectionString屬性的內(nèi)容或Open方法的ConnectionString參數(shù)來設(shè)置此屬性。但是,當調(diào)用Open方法時,如果在多個地方指定提供者,將可能導(dǎo)致無法預(yù)測的結(jié)果。如果未指定提供者,該屬性將默認使用MSDASQL(MicrosoftOLEDBProviderforODBC)。Provider屬性在連接關(guān)閉時為讀/寫,在連接打開時為只讀。只有當打開Connection對象或訪問Connection對象的Properties集合時,設(shè)置才生效。如果設(shè)置無效,則將產(chǎn)生錯誤。Provider代碼:Provider代碼ProviderADSDSOObjectActiveDirectoryServicesMicrosoft.Jet.OLEDB.4.0MicrosoftJetdatabasesMSDAIPP.DSO.1MicrosoftInternetPublishingMSDAORAOracledatabasesMSDAOSPMSDASQLSimpletextfilesMicrosoftOLEDBproviderforODBCMSDataShapeMicrosoftDataShapeMSPersistLocallysavedfiles

SQLOLEDBMicrosoftSQLServerState屬性State屬性可返回一個值,該值描述對象的當前狀態(tài)是打開、關(guān)閉、正在連接、正在執(zhí)行還是正在檢索數(shù)據(jù)。返回的是ObjectStateEnum值的Long值。默認值為adStateClosed。ObjectStateEnum枚舉類型:常數(shù)值描述adStateClosed0對象已關(guān)閉。adStateOpen1對象已打開。adStateConnecting2對象正在連接。adStateExecuting4對象正在執(zhí)行命令。adStateFetching8正在檢索對象的行。此屬性可用于Command,Connection,Record,Recordset以及Stream對象。State屬性可以是值的組合。例如,如果正在執(zhí)行某個語句,此屬性將有一個adStateOpen和adStateExecuting的組合值。State屬性為只讀。語法:object.StateVersion屬性指示ADO版本號。語法:version=objconn.Version返回值:返回String值,用于指示版本。說明:使用Version屬性返回ADO的版本號。Connection對象的方法方法描述BeginTrans開始一個新事務(wù)。Cancel取消一次執(zhí)行。Close關(guān)閉一個連接。CommitTransExecute保存任何更改并結(jié)束當前事務(wù)。執(zhí)行查詢、SQL語句、存儲過程或provider具體文本。Open打開一個連接。

OpenSchema從provider返回有關(guān)數(shù)據(jù)源的schema信息。RollbackTrans取消當前事務(wù)中所作的任何更改并結(jié)束事務(wù)。BeginTrans、CommitTrans、RollbackTrans方法這些事務(wù)方法按如下方法管理Connection對象中的事務(wù)進程:BeginTrans—開始新事務(wù)。CommitTrans—保存更改并結(jié)束當前事務(wù)。它也可能啟動新事務(wù)。RollbackTrans—取消當前事務(wù)中所做的更改并結(jié)束事務(wù)。它也可能啟動新事務(wù)。語法:level=object.BeginTrans()object.BeginTransobject.CommitTransobject.RollbackTrans返回值:BeginTrans可以作為函數(shù)調(diào)用,用于返回指示事務(wù)嵌套層次的Long變量。說明:對于支持嵌套事務(wù)的提供者,在打開的事務(wù)中調(diào)用BeginTrans方法將啟動新的嵌套事務(wù)。返回值將指示嵌套層次:返回值為“1”指示打開了頂層事務(wù)(即此事務(wù)未嵌套在其他事務(wù)中),返回值為“2”指示打開了第二層事務(wù)(嵌套在頂層事務(wù)中的事務(wù)),依此類推。調(diào)用CommitTrans或RollbackTrans只影響最新打開的事務(wù);在處理任何更高層事務(wù)之前必須關(guān)閉或回卷當前事務(wù)。如果想要以獨立單元保存或取消對源數(shù)據(jù)所做的一系列更改,請對Connection對象使用這些方法。例如,要進行轉(zhuǎn)帳,從一個帳戶中減去某個數(shù)額并將對等數(shù)額添加到另一個帳戶中。如果任何一個更新失敗,都將導(dǎo)致帳戶收支不平衡。在打開的事務(wù)中進行這些更改可確保只能選擇進行全部更改或不作任何更改。Cancel方法Cancel方法可取消方法調(diào)用的執(zhí)行。Cancel方法可為不同的對象終止不同的任務(wù)。下面的表格列出了當此方法被調(diào)用時被終止的任務(wù):對象被終止的任務(wù)CommandExecute。注釋:在Cancel方法被調(diào)用之前,Execute方法的Options參數(shù)必須被設(shè)置為adAsyncExecute或者adAsyncFetch,否則會發(fā)生run-time錯誤。ConnectionRecordExecute或Open。注釋:在Cancel方法被調(diào)用之前,Open方法的Options參數(shù)必須被設(shè)置為adSyncConnect,Execute方法的Options參數(shù)必須被設(shè)置為adAsyncExecute或者adAsyncFetch,否則會發(fā)生run-time錯誤。CopyRecord,DeleteRecord,MoveRecord,或者Open。RecordsetStreamOpenOpenClose方法Close方法用于關(guān)閉Connection對象、Record對象、Recordset對象或者Stream對象,以釋放系統(tǒng)資源。注釋:關(guān)閉對象不會將其從內(nèi)存中刪除;隨后可以更改其屬性設(shè)置并再次將其打開。要從內(nèi)存中徹底清除對象,請在關(guān)閉對象后將對象變量設(shè)置為Nothing(在VisualBasic中)。語法:object.CloseExecute方法Execute方法可執(zhí)行指定查詢、SQL語句、存儲過程或提供者特有的文本。如果CommandText參數(shù)指定按行返回的查詢,那么執(zhí)行產(chǎn)生的任何結(jié)果都將存儲在新的Recordset對象中。如果此命令不是以行返回的查詢,提供者將返回關(guān)閉的Recordset對象。注釋:返回的Recordset對象始終是只讀的、僅向前的游標。提示:如果需要具有更多功能的Recordset對象,應(yīng)首先創(chuàng)建Recordset對象,設(shè)置所需屬性,然后使用Recordset對象的Open方法執(zhí)行查詢并返回所需的游標類型。語法:對于以行返回的命令字符串:Setrecordset=connection.Execute(CommandText,RecordsAffected,Options)語法:對于不是以行返回的命令字符串:connection.ExecuteCommandText,RecordsAffected,Options參數(shù)描述commandtext必需。String值,包含要執(zhí)行的SQL語句、存儲過程、URL或提供者特有的文本。此外,僅當提供者被SQL識別時才可使用表名稱。例如,如果使用“Customers”作為表名稱,則ADO將自動預(yù)先根據(jù)標準SQLSelect語法構(gòu)成“SELECT*FROMCustomers”,并將其作為T-SQL語句傳遞給提供者。RecordsAffected可選。Long變量,提供者向其返回操作影響的記錄數(shù)目。options可選。Long值,指示提供者計算CommandText參數(shù)的方式。該值可以是一個或多個CommandTypeEnum或ExecuteOptionEnum值的位掩碼。默認是adCmdUnspecified。CommandTypeEnum枚舉類型:常數(shù)值描述adCmdUnspecified-1不指定命令類型的參數(shù)。adCmdText1按命令或存儲過程調(diào)用的文本定義計算CommandTextoadCmdTable2按表名計算CommandText,該表的列全部是由內(nèi)部生成的SQL查詢返回的。adCmdStoredProc4按存儲過程名計算CommandTextoadCmdUnknown8默認值。指示CommandText屬性中命令的類型未知。adCmdFile256按持久存儲的Recordset的文件名計算CommandTexto僅與Recordset.Open或Requery使用。adCmdTableDirect512按表名計算CommandText,該表的列被全部返回。僅與Recordset.Open或Requery使用。如需使用Seek方法,Recordset必須通過adCmdTableDirect

打開。該值不能與ExecuteOptionEnum值adAsyncExecute結(jié)合。ExecuteOptionEnum枚舉類型:常量值描述adOptionUnspecified-1指示未指定命令。adAsyncExecute0x10指示命令將異步執(zhí)仃。此值不能與CommandTypeEnum值adCmdTableDirect結(jié)合。adAsyncFetch0x20指示在CacheSize屬性中指定的初始數(shù)量以后的剩余行將被異步檢索。adAsyncFetchNonBlocking0x40指示檢索時主線程從不會阻塞。如果未檢索到所請求的行,當前行將自行移動到文件結(jié)尾。如果從包含持久存儲Recordset的Stream中打開Recordset,那么adAsyncFetchNonBlocking將不起作用;該操作將同步進行并發(fā)生阻塞。當adCmdTableDirect選項被用于打開Recordset時,adAsynchFetchNonBlocking不起作用。adExecuteNoRecordsadExecuteStream指示命令文本是不返回行的命令或存儲過程(例如,僅插入數(shù)據(jù)的命令)。如果檢索到任何行,它們將被放棄且不返回。通常與CommandTypeEnum值adCmdText或adCmdStoredProc組合在一起。adExecuteNoRecords只能作為可選參數(shù)傳遞給Command或ConnectionExecute方法。把它用作Command對象的CommandType屬性的參數(shù)將產(chǎn)生錯誤。指示命令執(zhí)行的結(jié)果應(yīng)作為流來返回。adExecuteStream只能作為可選參數(shù)傳遞給CommandExecute方法。adExecuteRecord指示CommandText是返回單一行的命令或存儲過程,此行應(yīng)作為Record對象來返回。(5)Open方法Open方法可打開一個到數(shù)據(jù)源的連接。當連接打開時,可以對數(shù)據(jù)源執(zhí)行命令。語法:connection.Openconnectionstring,userID,password,options參數(shù)描述connectionstring可選。一個包含有關(guān)連接的信息的字符串值。該字符串由一系列被分號隔開的

userIDparameter=value語句組成的。有關(guān)有效設(shè)置的詳細信息,請參閱ConnectionString屬性??蛇x。一個字符串值,包含建立連接時要使用的用戶名稱。password可選。一個字符串值,包含建立連接時要使用的密碼。options可選。一個ConnectOptionEnum值,確定應(yīng)在建立連接之后(同步)還是應(yīng)在建立連接之前(異步)返回本方法。ConnectOptionEnum枚舉類型:常數(shù)值描述adConnectUnspecified-1默認值。同步打開連接。adAsyncConnect16異步打開連接。ConnectComplete事件可以用來確定連接何時可用。(6)OpenSchema方法OpenSchema方法可返回Recordset對象,該對象包含有關(guān)數(shù)據(jù)源的模式信息。舉例,schema信息可包括表的名稱,表中的列名,每列的數(shù)據(jù)類型。Recordset將以只讀、靜態(tài)游標模式打開。語法: Setrs=objconn.OpenSchema(querytype,criteria,schemaid)參數(shù)描述querytype必需。任意SchemaEnum值,表示要運行的模式查詢的類型。注釋:OLEDB規(guī)范只要求二個SchemaEnum值得到支持:adSchemaTables,adSchemaColumns以及adSchemaProviderTypes。criteriaschemaid可選。每個QueryType選項的查詢約束的數(shù)組,如SchemaEnum中列出的內(nèi)容。OLEDB規(guī)范未定義的提供者模式查詢的GUID。如果QueryType被設(shè)置為adSchemaProviderSpecific,則需要此參數(shù)。否則,將不使用匕。SchemaEnum枚舉類型:QueryType值值描述Criteria值adSchemaProviderSpecific-1如果提供者定義自己的非標準模式查詢,則將使用該常量。ProviderspecificadSchemaAsserts0返回目錄中定義的斷言。CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMEadSchemaCatalogs1返回與可通過DBMS訪問CATALOG_NAME

的目錄相關(guān)的物理屬性。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返回目錄中定義的,被約束為關(guān)鍵字的列。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返回目錄中定義的表的列具有的特權(quán)TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEGRANTORGRANTEEadSchemaTablePrivileges14返回目錄中定義的表的列具有的特權(quán)。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEGRANTORGRANTEE

adSchemaUsagePrivileges15返回目錄中定義的對象的USAGE特權(quán)。OBJECT_CATALOGOBJECT_SCHEMAOBJECT_NAMEOBJECT_TYPEGRANTORGRANTEEadSchemaProcedures16返回目錄中定義的過程。PROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMEPROCEDURE_TYPEadSchemaSchemata17返回模式(數(shù)據(jù)庫對象)。CATALOG_NAMESCHEMA_NAMESCHEMA_OWNERadSchemaSQLLanguages18返回目錄中定義的SQL實現(xiàn)數(shù)據(jù)處理(SQL-implementationprocessingdata)所支持的一致性級別、選項和方 -1—I0NoneadSchemaStatistics19返回目錄中定義的統(tǒng)計。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEadSchemaTables20返回目錄中定義的可存取的表(包括視圖)。TABLE_CATALOGTABLE_SCHEMATABLE_NAMETABLE_TYPEadSchemaTranslations21返回目錄中定義的可訪問的字符轉(zhuǎn)換。TRANSLATION_CATALOGTRANSLATION_SCHEMATRANSLATION_NAMEadSchemaProviderTypes22返回數(shù)據(jù)提供者支持的(基本)數(shù)據(jù)類型。DATA_TYPEBEST_MATCHadSchemaViews23返回目錄中定義的可訪問的視圖。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEadSchemaViewColumnUsage24返回目錄中定義的相關(guān)列,在這些列上可查看表。VIEW_CATALOGVIEW_SCHEMAVIEW_NAMEadSchemaViewTableUsageadSchemaProcedureParameters2526返回目錄中定義的屬于給定用戶的相關(guān)表,在這些表上可查看表。VIEW_CATALOGVIEW_SCHEMAVIEW_NAMEPROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMEPARAMETER_NAME返回過程參數(shù)和返回代碼的信息。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返回提供者特有的關(guān)鍵字None

的列表。adSchemaDBInfoLiterals31返回文本命令中使用的文字的列表,這些文字是提供者特有的。NoneadSchemaCubes32返回模式(如果提供者不支持模式則為目錄)中可用立方的相關(guān)信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEadSchemaDimensions33CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_NAMEDIMENSION_UNIQUE_NAME返回給定立方中的維的信息。每一維對應(yīng)一行。adSchemaHierarchies34返回維中可用分級結(jié)構(gòu)的信息。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為維的每一級別返回有關(guān)可用屬性的信息。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操作之后被觸發(fā)。CommitTransComplete在CommitTrans操作之后被觸發(fā)。ConnectComplete在一個連接開始后被觸發(fā)。Disconnect在一個連接結(jié)束之后被觸發(fā)。ExecuteComplete在一條命令執(zhí)行完畢后被觸發(fā)。InfoMessage假如在一個ConnectionEvent操作過程中警告發(fā)生,則觸發(fā)該事件。RollbackTransComplete在RollbackTrans操作之后被觸發(fā)。WillConnect在一個連接開始之前被觸發(fā)。WillExecute在一條命令被執(zhí)行之前被觸發(fā)。BeginTransComplete、CommitTransComplete、RollbackTransComplete事件事件是某個具體的操作發(fā)生后被自動調(diào)用的子例程。BeginTransComplete事件在BeginTrans調(diào)用被完成后觸發(fā)。CommitTransComplete事件在CommitTrans調(diào)用被完成后觸發(fā)。RollbackTransComplete事件在RollbackTrans調(diào)用被完成后觸發(fā)。語法:BeginTransCompletetranslevel,objerror,status,objconnCommitTransCompleteobjerror,status,objconnRollbackTransCompleteobjerror,status,objconn參數(shù)描述translevelLong值,包含引發(fā)此事件的BeginTrans的新事務(wù)級別。objerrorstatus包含所發(fā)生錯誤的Error對象。注釋:EventStatusEnum值必需設(shè)置為adStatusErrorsOccurred,以創(chuàng)建Error對象。規(guī)定事件執(zhí)行的狀態(tài)。取EventStatusEnum狀態(tài)值。objconn引發(fā)此事件的Connection對象。EventStatusEnum枚舉類型:常量值描述adStatusOK1引發(fā)該事件的操作成功。

adStatusErrorsOccurredadStatusCantDeny23引發(fā)該事件的操作失敗。不能取消掛起操作。adStatusCancel4取消導(dǎo)致事件發(fā)生的操作。adStatusUnwantedEvent5在事件方法執(zhí)行結(jié)束之前禁止后續(xù)的通知。ConnectComplete事件Disconnect事件ExecuteComplete事件InfoMessage事件WillConnect事件WillExecute事件Connection對象的集合ConnectionErrorsProperties果口描述Errors包含Connection對象的所有Error對象。Properties包含Connection對象的所有Property對象。Connection對象的Errors集合和Error對象Errors集合包含為響應(yīng)單個提供者相關(guān)失敗而創(chuàng)建的Error對象。說明:任何涉及ADO對象的操作都可能產(chǎn)生一個或多個提供者錯誤。在每個錯誤發(fā)生時,一個或多個Error對象將被放到Connection對象的Errors集合中。當另一個ADO操作產(chǎn)生錯誤時,Errors集合被清空,Error對象的新集合被放到Errors集合中。每個Error對象都表示一個特定的提供者錯誤,而不是ADO錯誤。ADO錯誤被記載到運行時例外處理機制中。例如,在MicrosoftVisualBasic中,發(fā)生ADO特有的錯誤將觸發(fā)onError事件,并且出現(xiàn)在Error對象中。不產(chǎn)生錯誤的ADO操作對Errors集合沒有影響。使用Clear方法手動清除Errors集合。Errors集合中的Error對象集合描述為響應(yīng)單個語句而發(fā)生的所有錯誤。枚舉Errors集合中的特定錯誤可使錯誤處理例程更精確地判斷產(chǎn)生錯誤的原因和來源,并采取適當?shù)牟襟E恢復(fù)。某些屬性和方法返回警告,這些警告顯示為Errors集合中的Error對象,但并不終止執(zhí)行程序。先調(diào)用Errors集合的Clear方法,然后再調(diào)用Recordset對象的Resync、UpdateBatch或CancelBatch方法,Connection對象的Open方法,或設(shè)置Recordset對象的Filter屬性。這樣,就可以讀取Errors集合的Count屬性以測試返回的警告。1、Errors集合的屬性屬性描述Count指示集合中對象的數(shù)目。Item按名稱或序號指示集合的特定成員。(1)Count屬性指示集合中對象的數(shù)目。返回值:返回Long值。說明:使用Count屬性確定在給定集合中有多少對象。因為集合成員的編號從)開始,因此應(yīng)該始終以0成員開始并以Count屬性值減1結(jié)束來編寫循環(huán)代碼。如果正在使用MicrosoftVisualBasic并想在不檢查Count屬性的情況下循環(huán)集合的成員,請使用ForEach...Next命令。如果Count屬性為零,說明此集合中沒有對象。(2)Item屬性按名稱或序號指示集合的特定成員。語法:Setobject=collection.Item(Index)返回值:返回對象引用。參數(shù):Index是Variant表達式,計算集合中對象的名稱或序號。說明:使用Item屬性返回集合中的特定對象。如果Item屬性未能在集合中找到與Index參數(shù)相對應(yīng)的對象,將產(chǎn)生錯誤。同時,一些集合不支持命名的對象。對于這些集合,必須使用序號引用。Item屬性是所有集合的默認屬性。因此,下列語法形式可互換:collection.Item(Index) collection(Index)2、Errors集合的方法方法描述Clear刪除Errors集合中的所有Error對象。Refresh更新集合中的對象以反映提供者提供的和特有的對象。(1)Clear方法刪除Errors集合中的所有Error對象。語法:Errors.Clear說明:使用Errors集合的Clear方法以刪除集合中所有現(xiàn)有的Error對象。發(fā)生錯誤時,ADO將自動清空Errors集合,并用基于新錯誤的Error對象填充集合。某些屬性和方法返回警告,這些警告顯示為Errors集合中的Error對象,但并不終止程序的執(zhí)行。請先調(diào)用Errors集合的Clear方法,然后再調(diào)用Recordset對象的Resync、UpdateBatch或CancelBatch方法,調(diào)用Connection對象的Open方法,或設(shè)置Recordset對象的Filter屬性。這樣,就可以讀取Errors集合的Count屬性以測試返回的警告。(2)Clear方法更新集合中的對象以反映提供者提供的和特有的對象。語法:collection.Refresh說明:Refresh方法可以完成各種不同的任務(wù),這取決于您從哪個集合調(diào)用它。2、Error對象的屬性、方法和事件說明:任何涉及ADO對象的操作都可能產(chǎn)生一個或多個提供者錯誤。隨著每個錯誤的發(fā)生,一個或多個Error對象被放在Connection對象的Errors集合中。當另一個ADO操作產(chǎn)生錯誤時,Errors集合被清空,新的Error對象集被放在Errors集合中。注意:每個Error對象都表示一個特定的提供者錯誤,而不是ADO錯誤。ADO錯誤被記錄到運行時例外處理機制中。例如,在MicrosoftVisualBasic中,發(fā)生ADO特有的錯誤將引發(fā)OnError事件,并且出現(xiàn)在Error對象中。關(guān)于ADO錯誤的完整列表,請參閱ErrorValueEnum主題??梢宰x取Error對象的屬性以獲取關(guān)于每個錯誤的特定細節(jié),包括以下內(nèi)容:Description屬性,包含錯誤的文本。這是默認的屬性。Number屬性,包含錯誤常量的Long整數(shù)值。Source屬性,標識產(chǎn)生錯誤的對象。在向數(shù)據(jù)源發(fā)出請求后,如果Errors集合中有多個Error對象,那么該屬性將非常有用。SQLState和NativeError屬性,提供來自SQL數(shù)據(jù)源的信息。當發(fā)生提供者錯誤時,它被放在Connection對象的Errors集合中。ADO支持通過單個ADO操作返回多個錯誤,以允許提供者特有的錯誤信息。若要在錯誤處理程序中獲取更多此類錯誤信息,請使用相應(yīng)的語言或所在工作環(huán)境下的錯誤捕獲功能,然后使用嵌套的循環(huán)來枚舉Errors集合中每一個Error對象的屬性。(1)Error對象的屬性屬性描述Description返回一個錯誤描述。HelpContext返回MicrosoftWindowshelpsystem中某個主題的內(nèi)容ID。HelpFile返回MicrosoftWindowshelpsystem中幫助文件的完整路徑。NativeError返回來自provider或數(shù)據(jù)源的錯誤代碼。

Number返回可標識錯誤的一個唯一的數(shù)字。Source返回產(chǎn)生錯誤的對象或應(yīng)用程序的名稱。SQLState返回一個5字符的Number返回可標識錯誤的一個唯一的數(shù)字。Source返回產(chǎn)生錯誤的對象或應(yīng)用程序的名稱。SQLState返回一個5字符的SQL錯誤碼。1、 Description屬性可返回一個字符串,該字符串包含對錯誤的描述。這是Error對象的默認屬性。提供者和ADO均可成為錯誤源。提供者負責向ADO傳遞特定的錯誤文本。對于接收到的每一個提供者錯誤或警告,ADO都會向Errors集合中添加一個Error對象。枚舉Errors集合以跟蹤提供者傳遞的錯誤。語法:strErrorText=objErr.Description2、 HelpContext屬性可返回一個long值,該值幫助文件中主題的上下文ID。該屬性允許您與Windows幫助系統(tǒng)結(jié)合,例如,您可以調(diào)用Windows的API幫助函數(shù)。如果沒有與Windowshelpsystem結(jié)合的權(quán)限,HelpContext屬性將返回零語法:lngErrorContext=objErr.HelpContext3、 HelpFile屬性可返回一個字符串,該字符串包含MicrosoftWindowshelpsystem中幫助文件的完整路徑。該屬性允許您與Windows幫助系統(tǒng)結(jié)合,例如,您可以調(diào)用Windows的API幫助函數(shù)。如果沒有與Windowshelpsystem結(jié)合的權(quán)限,HelpContext屬性將返回””。語法:strErrorFile=objErr.HelpFile4、 NativeError屬性可返回一個long值,該值是由提供者或數(shù)據(jù)源返回ADO的錯誤代碼。使用NativeError屬性對某個Error對象檢索數(shù)據(jù)庫特有的錯誤信息。例如,當配合使用MicrosoftODBCProviderforOLEDB和MicrosoftSQLServer數(shù)據(jù)庫時,從SQLServer產(chǎn)生的原生錯誤代碼將通過ODBC和ODBCProvider傳遞到ADONativeError屬性。語法:lngErrorNative=objErr.NativeError5、 Number屬性指示唯一標識Error對象的數(shù)字。返回Long值,該值可能對應(yīng)于一個ErrorValueEnum常量。使用Number屬性確定發(fā)生了哪個錯誤。屬性的值是與錯誤條件對應(yīng)的唯一數(shù)字。Errors集合以十六進制格式(例如0x80004005)或以Long值(例如2147467259)返回HRESULT。這些HRESULT由基本組件生成,如OLEDB,甚至是OLE本身。語法:lngErrorNumber=objErr.Number6、 Source屬性可返回一個字符串值,指示最初產(chǎn)生錯誤的對象或應(yīng)用程序的名稱。語法:strErrorSource=objErr.Source7、 SQLState屬性可返回一個字符串,該字符串包含由提供者返回的五個字符的SQL錯誤代碼。語法:strErrorSQL=objErr.SQLState(2)Error對象的方法方法描述(3)Error對象的方法無Connection>Command、Recordset、Field對象的Properties集合和Property對象說明某些ADO對象包含有Property對象組成的Properties集合。每個Property對象對應(yīng)于提供者特有的ADO對象的特性。1、Properties集合的屬性屬性描述Count指示集合中對象的數(shù)目。Item按名稱或序號指示集合的特定成員。Count屬性返回值:返回Long值。說明:使用Count屬性確定在給定集合中有多少對象。因為集合成員的編號從零開始,因此應(yīng)該始終以零成員開始并以Count屬性值減1結(jié)束來編寫循環(huán)代碼。如果正在使用MicrosoftVisualBasic并想在不檢查Count屬性的情況下循環(huán)集合的成員,請使用ForEach...Next命令。如果Count屬性為零,說明此集合中沒有對象。Item屬性按名稱或序號指示集合的特定成員。語法:Setobject=collection.Item(Index)返回值:返回對象引用。

參數(shù):參數(shù):IndexVariant表達式,計算集合中對象的名稱或序號說明:使用Item屬性返回集合中的特定對象。如果Item屬性未能在集合中找到與Index參數(shù)相對應(yīng)的對象,將產(chǎn)生錯誤。同時,一些集合不支持命名的對象。對于這些集合,必須使用序號引用。Item屬性是所有集合的默認屬性。因此,下列語法形式可互換:collection.Item(Index)collection(Index)2、Properties集合的方法方法描述Refresh更新集合中的對象以反映提供者提供的和特有的對象。使用某些對象的Properties集合的Refresh方法預(yù)置該集合,其動態(tài)屬性由提供者顯露。這些屬性提供有關(guān)提供者特有的功能信息,ADO支持的內(nèi)置屬性除外。3、Properties集合的事件無2Command對象ADOCommand對象用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論