青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

山寨:不是最好的,是最適合我們的!歡迎體驗(yàn)山寨 中文版MSDN

Blog @ Blog

當(dāng)華美的葉片落盡,生命的脈絡(luò)才歷歷可見。 -- 聶魯達(dá)

常用鏈接

統(tǒng)計(jì)

積分與排名

BBS

Blog

Web

最新評(píng)論

OLE DB客戶數(shù)據(jù)庫(kù)編程

 

OLE DB是一種非常具有發(fā)展?jié)摿Φ臄?shù)據(jù)庫(kù)訪問(wèn)技術(shù),它首先基于COM技術(shù),以COM規(guī)范為基礎(chǔ)建立數(shù)據(jù)庫(kù)訪問(wèn)接口,成為介于數(shù)據(jù)庫(kù)應(yīng)用和數(shù)據(jù)源之間的一種通用數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn);其次,OLE DB能夠訪問(wèn)的數(shù)據(jù)源不再受到限制OLE DB通過(guò)OLE DB服務(wù)器將數(shù)據(jù)源透明化。從6.0版本開始,Visual C++提供了對(duì)OLE DB的全面支持。

8.1  OLE DB原理

8.1.1  OLE DBODBC

Visual C++之前的數(shù)據(jù)庫(kù)編程,通常都采用ODBC實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn)。ODBC是訪問(wèn)數(shù)據(jù)庫(kù)的一個(gè)底層標(biāo)準(zhǔn),數(shù)據(jù)庫(kù)供應(yīng)商常常需要編寫ODBC驅(qū)動(dòng)程序,以支持客戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。雖然ODBC仍然是一個(gè)不斷發(fā)展的技術(shù),但是ODBC在以下兩個(gè)方面無(wú)法達(dá)到目標(biāo):

ODBC只能訪問(wèn)關(guān)系型數(shù)據(jù)源,而現(xiàn)在有許多數(shù)據(jù)源,包括E-MailWord文檔、文本、Internet連接與傳輸?shù)鹊龋?/span>ODBC無(wú)法訪問(wèn)的。

ODBC不能用于專門訪問(wèn)特定的數(shù)據(jù),因此使得ODBC不夠強(qiáng)大,為了追求標(biāo)準(zhǔn),效率受到了嚴(yán)重影響。

OLE DB成功地解決了上述兩個(gè)問(wèn)題。OLE DB為用戶提供了訪問(wèn)不同類型的數(shù)據(jù)源的一種通用方法,它作為數(shù)據(jù)源和應(yīng)用程序的中間層,允許應(yīng)用程序以相同的接口訪問(wèn)不同類型的數(shù)據(jù)源OLE DB由一套通過(guò)COM訪問(wèn)數(shù)據(jù)源的ActiveX接口組成,它提供一種訪問(wèn)數(shù)據(jù)的統(tǒng)一手段,開發(fā)人員在開發(fā)時(shí),不必考慮數(shù)據(jù)源的類型。

8.1.2  OLE DB的結(jié)構(gòu)

OLE DB客戶(Consumer,也稱為應(yīng)用程序)和服務(wù)器(Provider,又稱為提供者程序)組成。客戶是指任何一個(gè)使用了OLE DB接口的系統(tǒng)或者應(yīng)用程序,其中包括OLE DB身,而服務(wù)器是指所有提供OLE DB接口的軟件組件

OLE DB客戶是使用數(shù)據(jù)的應(yīng)用程序,它通過(guò)OLE DB接口對(duì)數(shù)據(jù)提供者的數(shù)據(jù)進(jìn)行訪問(wèn)控制。在大多數(shù)情況下,前端的數(shù)據(jù)庫(kù)應(yīng)用開發(fā)都屬于客戶程序的開發(fā)。

OLE DB服務(wù)器是提供OLE DB接口的軟件組件,根據(jù)提供的內(nèi)容可以將服務(wù)器分成數(shù)據(jù)提供程序服務(wù)器提供程序數(shù)據(jù)提供程序擁有數(shù)據(jù)并將這些數(shù)據(jù)以表的形式存放,例如關(guān)系型DBMS、存儲(chǔ)管理器、電子表格和ISAM數(shù)據(jù)庫(kù)等。服務(wù)器提供程序不擁有數(shù)據(jù),但是可以通過(guò)利用OLE DB接口建立一些提供服務(wù)的組件。從某種意義上來(lái)說(shuō),服務(wù)組件既是客戶又是服務(wù)器。

對(duì)于一個(gè)完整的數(shù)據(jù)庫(kù)應(yīng)用程序來(lái)說(shuō),客戶和數(shù)據(jù)提供程序都是必不可少的。然而服務(wù)提供程序卻是可以省略的。當(dāng)客戶需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),他并非直接對(duì)數(shù)據(jù)源發(fā)出指令,而是通過(guò)OLE接口與數(shù)據(jù)源進(jìn)行交互,數(shù)據(jù)服務(wù)器從數(shù)據(jù)源取得所要查詢的數(shù)據(jù)時(shí),以表格的形式將其提供給接口,再由客戶將數(shù)據(jù)從接口取出并使用。在這些操作中,客戶和數(shù)據(jù)服務(wù)器都不必知道對(duì)方的具體應(yīng)用,而只需要對(duì)接口進(jìn)行操作,從而簡(jiǎn)化了程序設(shè)計(jì)。

8.1.3  OLE DB的優(yōu)越性

OLE DB是一種基于COM的全新數(shù)據(jù)庫(kù)開發(fā)技術(shù),它具有如下優(yōu)點(diǎn)

廣泛的應(yīng)用領(lǐng)域

以往的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),包括ODBCDAO等,都只能訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù),而OLE DB被設(shè)計(jì)成可以訪問(wèn)任何格式的文件,其中當(dāng)然包括關(guān)系型和非關(guān)系型的數(shù)據(jù)源,以及用戶自定義的文件格式,用戶只需要對(duì)所使用的數(shù)據(jù)源產(chǎn)生自己的數(shù)據(jù)提供程序,OLE DB客戶程序就可以透明地訪問(wèn)到它們。

簡(jiǎn)潔的開發(fā)過(guò)程

OLE DB的對(duì)象組件和接口已經(jīng)定義了數(shù)據(jù)提供程序所需要的接口,Visual C++ 6.0也為此提供了OLE DB模板,可以很方便地產(chǎn)生一個(gè)OLE DB應(yīng)用程序框架。OLE DB為建立服務(wù)提供程序提供了一系列功能,這些功能可以大大簡(jiǎn)化數(shù)據(jù)提供程序的設(shè)計(jì)。由于數(shù)據(jù)使用程序并不需要知道當(dāng)前數(shù)據(jù)提供程序的細(xì)節(jié),因此它只需要使用OLE DB的接口即可完成程序設(shè)計(jì)。由于接口的標(biāo)準(zhǔn)性,數(shù)據(jù)使用程序可以被用到任何提供了數(shù)據(jù)提供程序的數(shù)據(jù)源,使得OLE DB程序具有良好的移植性。

可靠的穩(wěn)定性

OLE DB應(yīng)用程序是基于COM接口的應(yīng)用程序,它繼承了COM接口的所有特性。COM模型具有良好的穩(wěn)定性,COMCOM之間只要遵循規(guī)定的接口,可以很容易地進(jìn)行通信,所有組件和接口共同工作,組成一個(gè)穩(wěn)定的應(yīng)用程序。OLE DB的各個(gè)對(duì)象都提供了錯(cuò)誤對(duì)象和錯(cuò)誤接口,可以由應(yīng)用程序截獲錯(cuò)誤,對(duì)其進(jìn)行適當(dāng)處理,從而提高了應(yīng)用軟件的穩(wěn)定性。

高效的數(shù)據(jù)訪問(wèn)

作為一個(gè)組件數(shù)據(jù)庫(kù)管理系統(tǒng),OLE DB通過(guò)將數(shù)據(jù)庫(kù)的功能劃分為客戶和服務(wù)器兩個(gè)方面,提供了比傳統(tǒng)數(shù)據(jù)庫(kù)更高的效率。由于數(shù)據(jù)使用者通常只需要數(shù)據(jù)庫(kù)管理的一部分功能,OLE DB將這些功能分離開來(lái),減少了用戶方面的資源開銷,同時(shí)減少了服務(wù)器方面的負(fù)擔(dān)。

綜上所述,由于提供了靈活的接口和優(yōu)越的性能,OLE DB必定成為數(shù)據(jù)庫(kù)開發(fā)的方向。

8.1.4  OLE DB對(duì)象

OLE DB的每一個(gè)組件都是一個(gè)COM對(duì)象,每一個(gè)組件都輸出一系列的接口。OLE DB由下列組件組成:

枚舉器

枚舉器用于搜尋可用的數(shù)據(jù)源和其它的枚舉器。如果客戶沒有指定所使用的枚舉器,則可以使用枚舉器來(lái)尋找,一般通過(guò)搜尋注冊(cè)表來(lái)發(fā)現(xiàn)相應(yīng)的數(shù)據(jù)源。該對(duì)象包括如下接口:

        CoType TEnumerator{

                           [mandatory] IParseDisplayName;

                            [mandatory] ISourceRowset;

                            [mandatory] IDBInitialize;

                            [mandatory] IDBProperties;

                            [mandatory] ISupportErrorInfo;

        }

數(shù)據(jù)源對(duì)象

數(shù)據(jù)源對(duì)象包含與數(shù)據(jù)源(DBMS或者文件系統(tǒng))連接的方法,此對(duì)象中含有環(huán)境變量連接信息用戶信息用戶口令等信息。使用數(shù)據(jù)源對(duì)象可以產(chǎn)生會(huì)話。該對(duì)象包括如下接口:

         CoType TDataSource{

                           [mandatory] interface IDBCreateSession;

                            [mandatory] interface IDBInitialize;

                            [mandatory] interface IDBProperties;

                            [mandatory] interface IPersist;

                            [mandatory] interface IConnectionPointContainer;

                            [mandatory] interface IDBAsynchStatus;

                            [optional] interface IDBDataSourceAdmin;

                            [optional] interface IDBInfo;

                            [optional] interface IPersistFile;

                            [optional] interface ISupportErrorInfo;

        }

會(huì)話

會(huì)話為事務(wù)處理提供了上下文環(huán)境,它可以被顯式或者隱式地執(zhí)行。一個(gè)數(shù)據(jù)源對(duì)象可以擁有多個(gè)會(huì)話,而通過(guò)會(huì)話又能夠生成事務(wù)命令行集。該對(duì)象的接口如下:

         CoType TSession{

                           [mandatory] interface IGetDataSource

                           [mandatory] interface IOpenRowset

                           [mandatory] interface ISessionProperties;

                            [optional] interface IDBCreateCommand;

                            [optional] interface IDBSchemaRowset;

                            [optional] interface IIndexDefinition;

                            [optional] interface ITableDefinition;

                            [optional] interface ITransactionJion;

                            [optional] interface ITransactionLocal;

                            [optional] interface ITransaction;

                            [optional] interface ITransactionObject;

                            [optional] interface ISupportErrorInfo;

        }

事務(wù)對(duì)象

事務(wù)對(duì)象用于管理數(shù)據(jù)庫(kù)的事務(wù),將多個(gè)操作合并為一個(gè)單一的事務(wù)處理。該對(duì)象緩存了對(duì)數(shù)據(jù)源的改變,使應(yīng)用程序有機(jī)會(huì)選擇提交或者回退以往的操作。事務(wù)能夠提高應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù)的性能,但是OLE DB數(shù)據(jù)服務(wù)器并不要求支持該對(duì)象。該對(duì)象包括如下接口:

         CoType TTransaction{

                           [mandatory] interface IConnectionPointContainer;

                            [mandatory] interface ITransaction;

                            [optional] interface ISupportErrorInfo;

        }

命令對(duì)象

命令對(duì)象用于對(duì)數(shù)據(jù)源發(fā)送文本命令。對(duì)于支持SQL的數(shù)據(jù)源,SQL命令同命令對(duì)象一起執(zhí)行,包括兩種數(shù)據(jù)定義語(yǔ)言和產(chǎn)生行集對(duì)象的查詢,對(duì)于其它不支持SQL的數(shù)據(jù)源,命令對(duì)象給數(shù)據(jù)源發(fā)送其它類型的文本命令。但是對(duì)于數(shù)據(jù)提供程序來(lái)說(shuō),不一定必須支持這個(gè)命令對(duì)象。一個(gè)單獨(dú)的會(huì)話能夠產(chǎn)生多個(gè)命令對(duì)象。該對(duì)象包括如下接口:

         CoType TCommand{

                           [mandatory] interface IAccessor;

                            [mandatory] interface IColumnsInfo;

                            [mandatory] interface ICommand;

                            [mandatory] interface ICommandProperties;

                            [mandatory] interface ICommandText;

                            [mandatory] interface IConvertType;

                            [optional] interface IColumnsRowset;

                            [optional] interface ICommandPrepare;

                            [optional] interface ICommandWithParameters;

                            [optional] interface ISupportErrorInfo;

        }

行集

行集以表的形式顯示數(shù)據(jù),其中索引就是一種特殊的行集。行集可以從會(huì)話或者命令對(duì)象產(chǎn)生。如果數(shù)據(jù)提供程序不支持命令對(duì)象,則行集可以由數(shù)據(jù)提供程序直接產(chǎn)生,直接產(chǎn)生行集是每一個(gè)數(shù)據(jù)提供程序的基本功能。根據(jù)數(shù)據(jù)提供程序所提供的功能,行集對(duì)象可以完成更新、插入、刪除等操作。該對(duì)象包括如下接口:

         CoType TRowset{

                           [mandatory] interface IAccessor;

                            [mandatory] interface IColumnsInfo;

                            [mandatory] interface IConvertType;

                            [mandatory] interface IRowset;

                            [mandatory] interface IRowsetInfo;

                            [mandatory] interface IChapteredRowset;

                            [optional] interface IColumnsRowset;

                            [optional] interface IConnectionPointContainer;

                            [optional] interface IDBAsynchStatus;

                            [optional] interface IRowsetChange;

                            [optional] interface IRowsetFind;

                            [optional] interface IRowsetIdentity;

                            [optional] interface IRowsetIndex;

                            [optional] interface IRowsetLocate;

                            [optional] interface IRowsetRefresh;

                            [optional] interface IRowsetScroll;

                            [optional] interface IRowsetUpdate;

                            [optional] interface IRowsetView;

                            [optional] interface ISupportErrorInfo;

        }

錯(cuò)誤對(duì)象

錯(cuò)誤對(duì)象中封裝了訪問(wèn)數(shù)據(jù)提供程序時(shí)發(fā)生的錯(cuò)誤,它可以由任何OLE DB對(duì)象的任何接口產(chǎn)生。錯(cuò)誤對(duì)象中含有關(guān)于錯(cuò)誤的附加信息,包括一個(gè)可選的定制錯(cuò)誤對(duì)象,通過(guò)它也能夠獲得擴(kuò)展的返回碼和狀態(tài)信息。該對(duì)象包括如下接口:

         CoType TError{

                           [mandatory] interface IErrorRecords;

         }

如果用戶不能確定數(shù)據(jù)源的位置,可以先使用枚舉器尋找數(shù)據(jù)源,在找到數(shù)據(jù)源以后,就可以使用它來(lái)生成一個(gè)會(huì)話,這個(gè)會(huì)話允許用戶對(duì)數(shù)據(jù)進(jìn)行訪問(wèn),或者以行集的形式,或者以命令的形式。


8-1展示了OLE DB應(yīng)用程序的對(duì)象流程。

8-1  OLE DB應(yīng)用程序?qū)ο罅鞒?/span>


8-2  OLE DB的客戶模板體系結(jié)構(gòu)

8.1.5  OLE DB客戶模板結(jié)構(gòu)

OLE DB客戶模板支持OLE DB1.1版本的標(biāo)準(zhǔn),它使實(shí)現(xiàn)一個(gè)0級(jí)OLE DB代碼質(zhì)量、客戶所需要標(biāo)寫的代碼量達(dá)到最少。該模板具有如下優(yōu)點(diǎn):

易于使用OLE DB所提供的功能。

易于與ATLMFC集成。

提供了數(shù)據(jù)參數(shù)綁定和列綁定的簡(jiǎn)單模型。

在編程時(shí)能夠使用C/C++數(shù)據(jù)類型。

OLE DB的客戶模板體系結(jié)構(gòu)如圖8-2所示。

由圖可以看出,OLE DB的客戶模板體系結(jié)構(gòu)由數(shù)據(jù)源支持類、用戶記錄類、行集和綁定類以及表和命令支持類4部分構(gòu)成。

8.1.6  OLE DB客戶模板類

為了能更好的使用OLE DB客戶模板進(jìn)行應(yīng)用程序設(shè)計(jì),首先必須熟悉OLE DB的客戶模板類。根據(jù)功能,OLE DB客戶模板類分成7會(huì)話類存取器類行集類命令類屬性類書簽類以及錯(cuò)誤類。

會(huì)話類

會(huì)話類包括CDataSource類、CEnmmerator類、CSession類和CEnmmeratorAccessor類。

1. CDataSource

CDataSource類對(duì)應(yīng)于OLE DB數(shù)據(jù)源對(duì)象,代表服務(wù)器與數(shù)據(jù)源的連接。在單個(gè)連接上可以擁有多個(gè)數(shù)據(jù)庫(kù)會(huì)話,其中的每一個(gè)會(huì)話都由CSession對(duì)象表示。調(diào)用CDataSource類的Open方法可以建立同數(shù)據(jù)源的連接。

2. CEnmmerator

CEnmmerator類對(duì)應(yīng)于OLE DB枚舉器對(duì)象,能夠檢索可用的數(shù)據(jù)源和枚舉器信息。CEnmmerator通過(guò)ISourcesRowset接口來(lái)獲得包含所有數(shù)據(jù)源和枚舉器描述的行集,用戶可以直接通過(guò)該類得到ISourcesRowset數(shù)據(jù)。

3. CSession

CSession類對(duì)應(yīng)于OLE DB會(huì)話對(duì)象,代表單個(gè)數(shù)據(jù)庫(kù)訪問(wèn)會(huì)話。要從CDataSource對(duì)象創(chuàng)建一個(gè)新的CSession對(duì)象,需要首先調(diào)用CDataSource對(duì)象的Open方法建立同數(shù)據(jù)源的連接,創(chuàng)建CSession對(duì)象的方法也是調(diào)用CSession對(duì)象的Open方法。該類還提供了事務(wù)處理函數(shù),用戶調(diào)用StartTransaction函數(shù)開始一個(gè)事務(wù)處理操作,調(diào)用Commit或者Abort函數(shù)提交或者回退這個(gè)事務(wù)處理。

4. CEnmmeratorAccessor

CEnmmeratorAccessor類被CEnmmerator類用來(lái)訪問(wèn)來(lái)自枚舉器行集的數(shù)據(jù),這個(gè)行既包括從當(dāng)前枚舉器中可見的數(shù)據(jù)源和枚舉器。

存取器類

存取器類包括CAccessorBase類、CAccessor類、CDynamicAccessor類、CDynamicParameterAccessor類和CManualAccessor類。

1. CAccessorBase

CAccessorBase類是所有存取器類的基類,所有存取器的OLE DB模板都是從該類中派生出來(lái)的。CAccessorBase類允許一個(gè)行集管理多個(gè)存取器,它還提供了對(duì)參數(shù)和輸出的綁定。

2. CAccessor

CAccessor類用于靜態(tài)綁定到數(shù)據(jù)源的記錄,使用該存取器類時(shí),必須事先知道數(shù)據(jù)源的結(jié)構(gòu)。當(dāng)一個(gè)記錄被靜態(tài)綁定到數(shù)據(jù)源時(shí),該記錄包含一個(gè)緩沖區(qū)。該類支持單個(gè)行集上的多個(gè)存取器。當(dāng)知道數(shù)據(jù)源的結(jié)構(gòu)時(shí)可以使用該存取器。

3. CDynamicAccessor

CDynamicAccessor類所代表的存取器可以在運(yùn)行時(shí)被創(chuàng)建,它基于行集的列信息。當(dāng)不知道數(shù)據(jù)源的結(jié)構(gòu)時(shí),可以使用CDynamicAccessor類檢索數(shù)據(jù)。該類將創(chuàng)建并管理緩沖區(qū),使用GetValue方法從緩沖區(qū)里讀取數(shù)據(jù)。

4. CDynamicParameterAccessor

在不知道命令類型時(shí),可以使用CDynamicParameterAccessor類進(jìn)行數(shù)據(jù)存取。如果服務(wù)器支持ICommandWithParameters接口,則該類就通過(guò)調(diào)用這個(gè)接口讀取參數(shù)信息。該類與CDynamicAccessor類類似,但是它所獲得的是參數(shù)信息。該類也能夠創(chuàng)建并管理緩沖區(qū),通過(guò)調(diào)用GetParamGetParamType方法可以從緩沖區(qū)里讀取列的信息。

5. CManualAccessor

CManualAccessor具有同時(shí)處理列和命令的能力,利用這個(gè)類,能夠使用服務(wù)器可轉(zhuǎn)換的數(shù)據(jù)類型。該類代表了為將來(lái)設(shè)計(jì)而使用的存取器類型,使用該類能夠通過(guò)運(yùn)行時(shí)函數(shù)調(diào)用指定參數(shù)和輸出列。

行集類

行集類包括CRowset類、CBulkRowset類、CAccessorRowset類、CArrayRowset類和CRestrictions類。

1. CRowset

CRowset類用于處理建立檢索行數(shù)據(jù)。在OLE DB中,行集為應(yīng)用程序操作數(shù)據(jù)所用的對(duì)象。CRowset類封裝了OLE DB行集對(duì)象和一些相關(guān)的接口,并為操作行集數(shù)據(jù)提供了成員函數(shù)。

2. CBulkRowset

CBulkRowset類用于批量讀取和處理行,通過(guò)單個(gè)函數(shù)調(diào)用可檢索多個(gè)行句柄。

3. CAccessorRowset

CAccessorRowset封裝一個(gè)行集和相關(guān)的存取器

4. CArrayRowset

CArrayRowset類用于以數(shù)組形式訪問(wèn)行集中的元素

5. CRestrictions

CRestrictions類用于為綱要行集指定限制條件

命令類

命令類包括:CCommand類、CTable類、CMultipleResults類、CNoMultipleResults類、CNoAccessor類和CNoRowset類。

1. CCommand

CCommand類用于設(shè)置和執(zhí)行一個(gè)基于參數(shù)的OLE DB命令,如果只需要打開一個(gè)簡(jiǎn)單的行集,則應(yīng)該使用CTable類。

2. CTable

CTable類用于訪問(wèn)一個(gè)不帶參數(shù)的簡(jiǎn)單行集

3. CMultipleResults

CMultipleResults類用于將CCommand類的TMultiple參數(shù)設(shè)置TRUE

4. CNoMultipleResults

CMultipleResults類用于將CCommand類的TMultiple參數(shù)設(shè)置FALSE

5. CNoAccessor

CNoAccessor類用于將CCommand類的TAccessor參數(shù)設(shè)置FALSE

6. CNoRowset

CNoAccessor類用于將CCommand類的TRowset參數(shù)設(shè)置FALSE

屬性類

屬性類包括:CDBPropIDSet類和CDBPropSet類。

1. CDBPropIDSet

CDBPropIDSet類用于傳遞一個(gè)包含客戶請(qǐng)求的屬性信息的屬性ID數(shù)組

OLE DB客戶用DBPROPIDSET結(jié)構(gòu)來(lái)傳遞一組客戶要得到的屬性信息的屬性標(biāo)識(shí)。在DBPROPIDSET結(jié)構(gòu)中被標(biāo)識(shí)的屬性屬于一個(gè)屬性集合。CDBPropIDSet類繼承了DBPROPIDSET結(jié)構(gòu)并添加了一個(gè)構(gòu)造函數(shù),用于初始化關(guān)鍵字段和AddPropertyID方法。

2. CDBPropSet

CDBPropSet類用于設(shè)置服務(wù)器屬性

OLE DB服務(wù)器和客戶用DBPROPSET結(jié)構(gòu)來(lái)傳遞DBPROP結(jié)構(gòu)數(shù)組。每一個(gè)DBPROP結(jié)構(gòu)代表了可以被設(shè)置的單個(gè)屬性。CDBPropSet類繼承了DBPROP結(jié)構(gòu)并添加了一個(gè)構(gòu)造函數(shù),用于初始化關(guān)鍵字段數(shù)據(jù)成員和AddProperty方法。

書簽類

OLE DB里客戶模板的書簽類是指CBookMark類,它被用于以索引的形式在行集中訪問(wèn)數(shù)據(jù)

錯(cuò)誤類

OLE DB里客戶模板的錯(cuò)誤類是指CDBErrorInfo類,它用于檢索OLE DB的出錯(cuò)信息。這個(gè)類提供了使用OLE DBIErrorRecords接口進(jìn)行OLE DB出錯(cuò)處理的支持。這個(gè)接口向用戶返回一個(gè)或者多個(gè)錯(cuò)誤記錄。調(diào)用GetErrorRecords方法可以得到一個(gè)出錯(cuò)記錄數(shù),然后調(diào)用GetAllErrorInfo方法檢索每一條出錯(cuò)記錄的信息。

posted on 2008-11-27 16:34 isabc 閱讀(1580) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫(kù)

廣告信息(免費(fèi)廣告聯(lián)系)

中文版MSDN:
歡迎體驗(yàn)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品a级| 亚洲视频免费在线观看| 亚洲制服av| 久久久久久999| 香蕉精品999视频一区二区 | 国产毛片一区二区| 亚洲缚视频在线观看| 欧美日韩日日骚| 日韩一级成人av| 日韩小视频在线观看专区| 免费观看成人鲁鲁鲁鲁鲁视频| 免费亚洲一区二区| 国产精品久久久久久久久久尿| 香蕉亚洲视频| 国产精品亚洲综合一区在线观看| 欧美影片第一页| 欧美大片第1页| 国产日产亚洲精品系列| 久久电影一区| 久久免费国产精品1| 91久久精品网| 亚洲美女视频| 极品日韩久久| 欧美激情一区二区在线| 亚洲欧美一区二区激情| 欧美在线三区| 亚洲福利av| 欧美成人精品在线观看| 亚洲每日更新| 六月婷婷一区| 亚洲一区二区三区乱码aⅴ| 国产欧美 在线欧美| 欧美精品97| 亚洲综合精品四区| 国产一区二区三区黄| 欧美黄色一区| 久久婷婷av| 欧美在线视频观看| 亚洲一区免费看| 一本色道久久综合亚洲精品按摩| 欧美一区成人| 亚洲欧美视频在线| a4yy欧美一区二区三区| 亚洲国产高清一区| 黄色成人av| 精品99视频| 永久555www成人免费| 99av国产精品欲麻豆| 亚洲日本成人| 一本色道久久综合亚洲精品高清| 一区二区三区精品久久久| 一区二区欧美在线| 久久久国产精品一区二区三区| 欧美aa在线视频| 99国产精品| 欧美一区网站| 欧美日韩日日骚| 精品动漫3d一区二区三区| 一区二区三区日韩| 六十路精品视频| 一区二区三区欧美激情| 欧美成人免费播放| 国产精品毛片a∨一区二区三区|国 | 亚洲午夜高清视频| 久热爱精品视频线路一| 亚洲婷婷国产精品电影人久久| 久久夜色精品国产亚洲aⅴ| 国产精品v一区二区三区| 亚洲国产小视频| 亚洲一级黄色| 亚洲欧美另类久久久精品2019| 性高湖久久久久久久久| 国产免费成人| 亚洲一区二区在线免费观看| 久久综合电影一区| 亚洲一级影院| 欧美精品色综合| 精品成人国产| 久久久久在线观看| 亚洲女女女同性video| 国产精品乱人伦一区二区 | 久久激情五月婷婷| 在线视频国产日韩| 亚洲国产精品www| 欧美精品在线极品| 欧美一区二区三区免费视频| 欧美在线视频a| 亚洲激情成人| 日韩一级精品| 国内精品免费午夜毛片| 亚洲激情图片小说视频| 亚洲第一黄网| 91久久夜色精品国产网站| 亚洲国产精品久久精品怡红院| 美女国内精品自产拍在线播放| 亚洲淫性视频| 欧美激情亚洲一区| 国内精品久久久久伊人av| 在线亚洲美日韩| 久久国产精品一区二区三区四区 | 日韩视频欧美视频| 午夜精品免费| 国产精品美女久久久久久免费| 国产视频久久久久久久| 美国十次了思思久久精品导航| 久久亚洲私人国产精品va| 久久综合精品国产一区二区三区| 午夜精品久久久久久久蜜桃app| 久久伊人免费视频| 欧美日韩免费区域视频在线观看| 毛片基地黄久久久久久天堂| 国产一区二区三区久久| 亚洲精品视频免费在线观看| 亚洲欧美日韩另类| 欧美一区二区三区四区高清 | 欧美日韩国产在线一区| 在线不卡亚洲| 欧美成年人网站| 亚洲国产日韩美| 亚洲图片欧洲图片日韩av| 欧美国产日产韩国视频| 一区二区欧美精品| 免费亚洲视频| 久久久91精品国产一区二区精品| 一本大道av伊人久久综合| 一色屋精品视频在线看| 国产婷婷色一区二区三区在线| 欧美日韩在线不卡| 亚洲国产免费看| 亚洲激情视频网站| 久久国产精品久久国产精品| 韩国一区电影| 欧美成人精品一区| 欧美超级免费视 在线| 亚洲精品美女免费| 亚洲一二三区精品| 午夜激情亚洲| 欧美日韩精品免费观看视频| 亚洲色无码播放| 久久久97精品| 亚洲一区二区三区高清| 亚洲激情在线| 欧美日韩久久精品| 一本色道久久99精品综合| 欧美先锋影音| 麻豆精品精华液| 国产美女在线精品免费观看| 亚洲午夜未删减在线观看| 亚洲视频在线观看网站| 国产精品亚洲综合天堂夜夜| 亚洲欧美在线观看| 国产精品免费看| 亚洲人成网站影音先锋播放| 欧美一级黄色网| 中文精品视频一区二区在线观看| 激情六月婷婷久久| 国内精品美女av在线播放| 狠狠色丁香婷婷综合影院| 亚洲三级视频| 亚洲视频在线观看视频| 国产日本精品| 欧美性猛交xxxx乱大交退制版| 久久国产加勒比精品无码| 亚洲每日在线| 久久久另类综合| 欧美亚洲一区在线| 午夜久久影院| 国产综合视频在线观看| 欧美国产激情二区三区| 国产自产在线视频一区| 亚洲天天影视| 亚洲欧美日本国产有色| 欧美高清视频免费观看| 亚洲国产精品成人久久综合一区| 狠狠综合久久av一区二区老牛| 一区二区三区四区精品| 亚洲女人天堂成人av在线| 欧美日韩中文字幕在线| 亚洲欧洲精品一区二区| 亚洲一区二区精品在线观看| 欧美二区在线看| 一本一道久久综合狠狠老精东影业| 久久久久久久久久久久久女国产乱 | 欧美精品aa| 久久免费精品视频| 久久亚洲国产成人| 欧美 日韩 国产精品免费观看| 久久久久久日产精品| 欧美不卡高清| 欧美日韩亚洲激情| 国产欧美日韩精品在线| 亚洲第一在线| 亚洲香蕉成视频在线观看| 午夜精品在线看| 另类尿喷潮videofree| 亚洲第一在线综合在线| 美国十次成人| 午夜精品久久久| 亚洲一区二区三区高清| 亚洲日本成人网|