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