引用ADO支持文件相關(guān)設(shè)定
盡管它提高了性能,但是也增加了應(yīng)用程序管理數(shù)據(jù)集里面數(shù)據(jù)更新的復(fù)雜性,ADO支持文件為了保持簡(jiǎn)單性,你也許會(huì)為數(shù)據(jù)集中的每個(gè)數(shù)據(jù)表建立一個(gè)數(shù)據(jù)適配器。 ,來(lái)構(gòu)造示例程序操作所需的Access數(shù)據(jù)庫(kù)。
首先,要用#import語(yǔ)句來(lái)引用支持ADO的組件類型庫(kù)(*.tlb),ADO支持文件其中類型庫(kù)可以作為可執(zhí)行程序(DLL、EXE等)的一部分被定位在其自身程序中的附屬資源里,如:被定位在msado15.dll的附屬資源中,只需要直接用#import引用它既可??梢灾苯釉赟tdafx.h文件中加入下面語(yǔ)句來(lái)實(shí)現(xiàn):
- #import "c:\program files\common files\system\ado\msado15.dll" \
- no_namespace \
- rename ("EOF", "adoEOF")
其中路徑名可以根據(jù)自己系統(tǒng)安裝的ADO支持文件的路徑來(lái)自行設(shè)定。當(dāng)編譯器遇到#import語(yǔ)句時(shí),它會(huì)為引用組件類型庫(kù)中的接口生成包裝類,#import語(yǔ)句實(shí)際上相當(dāng)于執(zhí)行了API涵數(shù)LoadTypeLib()。#import語(yǔ)句會(huì)在工程可執(zhí)行程序輸出目錄中產(chǎn)生兩個(gè)文件,分別為*.tlh(類型庫(kù)頭文件)及*.tli(類型庫(kù)實(shí)現(xiàn)文件),它們分別為每一個(gè)接
口產(chǎn)生智能指針,并為各種接口方法、枚舉類型,CLSID等進(jìn)行聲明,創(chuàng)建一系列包裝方法。語(yǔ)句no_namespace說(shuō)明ADO對(duì)象不使用命名空間,rename ("EOF", "adoEOF")說(shuō)明將ADO中結(jié)束標(biāo)志EOF改為adoEOF,以避免和其它庫(kù)中命名相沖突。#t#
其次,在程序初始過(guò)程中需要初始化組件,一般可以用CoInitialize(NULL);來(lái)實(shí)現(xiàn),這種方法在結(jié)束時(shí)要關(guān)閉初始化的COM,可以用下面語(yǔ)句CoUnInitialize();來(lái)實(shí)現(xiàn)。在MFC中還可以采用另一種方法來(lái)實(shí)現(xiàn)初始化ADO支持文件,這種方法只需要一條語(yǔ)句便可以自動(dòng)為我們實(shí)現(xiàn)初始化COM和結(jié)束時(shí)關(guān)閉COM的操作,
語(yǔ)句如下所示: AfxOleInit();.tlh中聲明的智能指針中的三個(gè),它們分別是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分別對(duì)它ConnectionPtr智能指針,通常用于打開(kāi)、關(guān)閉一個(gè)庫(kù)連接或用它的Execute方法來(lái)執(zhí)行一個(gè)不返回結(jié)果的命令語(yǔ)句(用法和_CommandPtr中的Execute方法類似)。ADO支持文件打開(kāi)一個(gè)庫(kù)連接。先創(chuàng)建一個(gè)實(shí)例指針,再用Open打開(kāi)一個(gè)庫(kù)連接,它將返回一個(gè)IUnknown的自動(dòng)化接口指針。