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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

的目錄相關(guān)的物理屬性。adSchemaCharacterSets2返回目錄中定義的字符集。CHARACTER_SET_CATALOGCHARACTER_SET_SCHEMACHARACTER_SET_NAMEadSchemaCollations3返回目錄中定義的字符序列。COLLATION_CATALOGCOLLATION_SCHEMACOLLATION_NAMEadSchemaColumns4返回目錄中定義的表(包括視圖)的列。TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEadSchemaCheckConstraints5返回目錄中定義的校驗(yàn)約束。CONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMEadSchemaConstraintColumnUsage6返回目錄中定義的列,這些列由引用約束、唯一約束、校驗(yàn)約束和斷言使用。TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEadSchemaConstraintTableUsage7返回目錄中定義的表,這些表由引用約束、唯一約束、校驗(yàn)約束和斷言使用。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返回目錄中定義的對(duì)象的USAGE特權(quán)。OBJECT_CATALOGOBJECT_SCHEMAOBJECT_NAMEOBJECT_TYPEGRANTORGRANTEEadSchemaProcedures16返回目錄中定義的過(guò)程。PROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMEPROCEDURE_TYPEadSchemaSchemata17返回模式(數(shù)據(jù)庫(kù)對(duì)象)。CATALOG_NAMESCHEMA_NAMESCHEMA_OWNERadSchemaSQLLanguages18返回目錄中定義的SQL實(shí)現(xiàn)數(shù)據(jù)處理(SQL-implementationprocessingdata)所支持的一致性級(jí)別、選項(xiàng)和方 -1—I0NoneadSchemaStatistics19返回目錄中定義的統(tǒng)計(jì)。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEadSchemaTables20返回目錄中定義的可存取的表(包括視圖)。TABLE_CATALOGTABLE_SCHEMATABLE_NAMETABLE_TYPEadSchemaTranslations21返回目錄中定義的可訪問(wèn)的字符轉(zhuǎn)換。TRANSLATION_CATALOGTRANSLATION_SCHEMATRANSLATION_NAMEadSchemaProviderTypes22返回?cái)?shù)據(jù)提供者支持的(基本)數(shù)據(jù)類(lèi)型。DATA_TYPEBEST_MATCHadSchemaViews23返回目錄中定義的可訪問(wèn)的視圖。TABLE_CATALOGTABLE_SCHEMATABLE_NAMEadSchemaViewColumnUsage24返回目錄中定義的相關(guān)列,在這些列上可查看表。VIEW_CATALOGVIEW_SCHEMAVIEW_NAMEadSchemaViewTableUsageadSchemaProcedureParameters2526返回目錄中定義的屬于給定用戶的相關(guān)表,在這些表上可查看表。VIEW_CATALOGVIEW_SCHEMAVIEW_NAMEPROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMEPARAMETER_NAME返回過(guò)程參數(shù)和返回代碼的信息。adSchemaForeignKeys27返回給定用戶在目錄中定義的外鍵列。PK_TABLE_CATALOGPK_TABLE_SCHEMAPK_TABLE_NAMEFK_TABLE_CATALOGFK_TABLE_SCHEMAFK_TABLE_NAMEadSchemaPrimaryKeys28返回給定用戶在目錄中定義的主鍵列。PK_TABLE_CATALOGPK_TABLE_SCHEMAPK_TABLE_NAMEadSchemaProcedureColumns29返回行集合中列的信息,該行集合由過(guò)程返回。PROCEDURE_CATALOGPROCEDURE_SCHEMAPROCEDURE_NAMECOLUMN_NAMEadSchemaDBInfoKeywords30返回提供者特有的關(guān)鍵字None

的列表。adSchemaDBInfoLiterals31返回文本命令中使用的文字的列表,這些文字是提供者特有的。NoneadSchemaCubes32返回模式(如果提供者不支持模式則為目錄)中可用立方的相關(guān)信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEadSchemaDimensions33CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_NAMEDIMENSION_UNIQUE_NAME返回給定立方中的維的信息。每一維對(duì)應(yīng)一行。adSchemaHierarchies34返回維中可用分級(jí)結(jié)構(gòu)的信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_NAMEHIERARCHY_UNIQUE_NAMEadSchemaLevels35返回維中可用級(jí)別的信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEDIMENSION_UNIQUE_NAMEHIERARCHY_UNIQUE_NAMELEVEL_NAMELEVEL_UNIQUE_NAMEadSchemaMeasures36返回可用度量的信息。CATALOG_NAMESCHEMA_NAMECUBE_NAMEMEASURE_NAMEMEASURE_UNIQUE_NAMEadSchemaProperties37為維的每一級(jí)別返回有關(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對(duì)象的事件注釋?zhuān)耗鸁o(wú)法使用VBScriptorJScript來(lái)處理事件(僅能使用VisualBasic、VisualC++以及VisualJ++語(yǔ)言處理事件)。

事件描述BeginTransComplete在BeginTrans操作之后被觸發(fā)。CommitTransComplete在CommitTrans操作之后被觸發(fā)。ConnectComplete在一個(gè)連接開(kāi)始后被觸發(fā)。Disconnect在一個(gè)連接結(jié)束之后被觸發(fā)。ExecuteComplete在一條命令執(zhí)行完畢后被觸發(fā)。InfoMessage假如在一個(gè)ConnectionEvent操作過(guò)程中警告發(fā)生,則觸發(fā)該事件。RollbackTransComplete在RollbackTrans操作之后被觸發(fā)。WillConnect在一個(gè)連接開(kāi)始之前被觸發(fā)。WillExecute在一條命令被執(zhí)行之前被觸發(fā)。BeginTransComplete、CommitTransComplete、RollbackTransComplete事件事件是某個(gè)具體的操作發(fā)生后被自動(dòng)調(diào)用的子例程。BeginTransComplete事件在BeginTrans調(diào)用被完成后觸發(fā)。CommitTransComplete事件在CommitTrans調(diào)用被完成后觸發(fā)。RollbackTransComplete事件在RollbackTrans調(diào)用被完成后觸發(fā)。語(yǔ)法:BeginTransCompletetranslevel,objerror,status,objconnCommitTransCompleteobjerror,status,objconnRollbackTransCompleteobjerror,status,objconn參數(shù)描述translevelLong值,包含引發(fā)此事件的BeginTrans的新事務(wù)級(jí)別。objerrorstatus包含所發(fā)生錯(cuò)誤的Error對(duì)象。注釋?zhuān)篍ventStatusEnum值必需設(shè)置為adStatusErrorsOccurred,以創(chuàng)建Error對(duì)象。規(guī)定事件執(zhí)行的狀態(tài)。取EventStatusEnum狀態(tài)值。objconn引發(fā)此事件的Connection對(duì)象。EventStatusEnum枚舉類(lèi)型:常量值描述adStatusOK1引發(fā)該事件的操作成功。

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論