應用vc進行資料庫程式設計與分析

才智咖 人氣:2.1W

一、VC作為資料庫程式設計工具必要性

應用vc進行資料庫程式設計與分析

實際上從方便的角度講,VisuaIBa血和Delphi這樣的RAD環境更加適合於資料庫開發,應用這些軟體可以在使程式設計非常地容易。對大多數資料庫應用來說,選擇VC++也許並不適宜。但是需要考慮到,單純的資料庫管理必須要和其它的功能結合才能發揮更大的作用,而資料庫軟體並不輕易地支援這些拓展的功能。由於VC對底層強大的支援,其高效的率的程式碼結構,編寫的資料庫相關應用程式就會有規模小、提供底層訪問並能提供實時訪問的特點。比如編寫資料庫實用程式及驅動程式時,在硬碟較小或記憶體有限制時,Visualc++提供了無價無限的工具。

二、VC資料庫程式設計方法分析

(一)ODBC的模式

Mα'Os'Ofi最初是以開放資料庫互連(ODBC)為目標的,ODBC是Micr'Os'Oft引進的一種早期資料庫介面技術,是ADO的前身。

VisualC++的MFC類庫定義了幾個資料庫類。在利用ODBC程式設計時,經常要使用到CDatabase(資料庫類),CRec'OrdSet(記錄集類)和CRe∞'rdView(可視記錄集類)。其中:CDatabase類物件提供了對資料來源的連線,通過它你可以對資料來源進行操作。CRecordView類物件能以控制的形式顯示資料庫記錄。這個檢視是直接連到一個CRec'OrdSet物件的表檢視。CRec'OrdSet類物件提供了從資料來源中提取出的記錄集。

1資料鏈接

在CRecordSet類中定義了一個成員變數m_pDatabase:CDatabase*m_pDatabase;

它是指向物件資料庫類的指標。如果在CRec'OrdSet類物件呼叫OpenO函式之前,將一個已經開啟的CDatabase類物件指標傳給m-pDatabase,就能共享相同的CDatabase類物件。

2.查詢記錄

查詢記錄使用CRec'OrdSet::OpenO和CRec'OrdSet::R叫ueryO成員函式。在使用CRecordSet類物件之前,必須使用CRec'OrdSet::OpenO函式來獲得有效的記錄集。一旦已經使用過CReoordSet::OpenO函式,再次查詢時就可以應用CRecordSet::RequeryO函式。在呼叫αecordSet::句enO函式時,如果已經將一個已經開啟的CDatabase物件指標傳給CRec'OrdSet類物件的m_pDatabase成員變數,則使用該資料庫物件建立ODBC連線;否則如果m_pDatabase為壁指標,就新建一個CDatabase類物件並使其與預設的'資料來源相連,然後進行αec'OrdSet類物件的初始化。預設資料來源由GetDefaultC'OnnectO函式獲得。

如果沒有指定引數,程式則使用預設的SQL語句,即對在GetDefaultSQL()函式中指定的SQL語句進行操作。(二)ADO的模式

ADO既能應用到VC的強大功能,而且使用起來又比較方便,本文以ADO方式資料庫訪問為例,展示VC下如何進行資料庫應用。下面是使用其程式設計的方法。

1.使用預處理指令#import

#import"C:飛ProgramFilesC'Omm'OnFiles飛System'山DO恤sad'015.

dll"n'O_namespaceren缸醜叭"EOF","EndOfFile")

程式在編譯過程中,VC++會讀出中的型別庫資訊,自動產生兩個該型別庫的標頭檔案和實現檔案msad'和msad'(在您的Debug或Release目錄下〉。在這兩個檔案裡定義了ADO的所有物件和方法,以及一些列舉型的常量等。我們的程式只要直接呼叫這些方法就行了,與使用MFC中的COleDispatchDriver類呼叫Aut'Omati'On物件十分類似。

2.使用MFC中的CIDispatchDriver就是通過讀取msad'中的型別庫資訊,建立一個COleDispatchDriver類的派生類,然後通過它呼叫ADO物件。

3直接用COM提供的API如使用如下程式碼zCLSIDclsid;

HRESULThr=::CLSIDFromProgID(L"ADODB.C'Onnecti'On",&clsid);

if(FAlLED(hr?{...J

:CoCr四teIn民ance(clsid,NULL,CLSCTX_SERVER

IID_IDispatch,(v'Oid叫&pDispatch);

if(FAlLED(hr

{...J

以上三種方法,第一和第二種類似,可能第一種好用一些,第三種程式設計可能最麻煩。但可能第三種方法也是效率最高的,程式的尺寸也最小,並且對ADO的控制能力也最強。當需要繞過ADO而直接呼叫OLEDB底層的方法時,就一定要使用第三種方法。ADO程式設計的關鍵,就是熟練地運用ADO提供的各種物件('0ect)、方法(method)、屬性(prop町ty)和容器(00llecti'On)。