邱暢,王濤
(河南省永城市人民醫(yī)院,河南 永城 476600)
基于VC的數(shù)據(jù)庫編程設計與實現(xiàn)
邱暢,王濤
(河南省永城市人民醫(yī)院,河南 永城 476600)
摘要:VC工具具有較為強大的編程性能,在實際編程中發(fā)揮重要的作用,備受編程人員所歡迎。在計算機技術和信息技術不斷發(fā)展的當下,對編程人員的技能提出更高需求,只有充分掌握VC技術,才能更好的完成數(shù)據(jù)庫編程工作。通過對基于VC的數(shù)據(jù)庫編程設計與實現(xiàn)進行研究分析,希望能夠為相關程序設計人員提供一定的理論借鑒。
關鍵詞:VC;數(shù)據(jù)庫編程;設計研究
前言
當今時期正處于計算機技術和網(wǎng)絡技術高速發(fā)展的時期,廣泛應用于社會多個領域中,極大程度的改變了人們生活生產(chǎn)方式。在信息化和數(shù)字化的當今時代,很多計算機編程語言例如C語言、JAVA受到行業(yè)人士的歡迎,很多程序開發(fā)都會利用到編程語言。比如說數(shù)據(jù)庫編程的設計,基于vc開發(fā)工具的支持,為編程人員帶來極大便利。
1VC數(shù)據(jù)庫編程設計ODBC方式
開放數(shù)據(jù)庫連接(Open Database Connectivity,ODBC)是微軟公司開放服務結構中有關數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標準API(應用程序編程接口)。Microsoft也是以此作為核心考慮。ODBC屬于ADO的前身技術,是Microsoft引進的一種接口技術。編程人員進行數(shù)據(jù)庫內(nèi)容訪問階段,利用開放數(shù)據(jù)庫連接(ODBC)可以以非語言的形式實施操作,更加簡單便捷[1]。同時,利用ODBC,編程人員在進行DBF文件、或者Access Basic所獲取的數(shù)據(jù)信息時,不再要求具備Xbase程序的專業(yè)設計語言。同Windows較為相似的是,開放數(shù)據(jù)庫連接(ODBC)同樣可以利用DLL中的驅(qū)動程序,實現(xiàn)任務的完成。一般情況下,開放數(shù)據(jù)庫連接(ODBC)可以提供兩種驅(qū)動程序,分別是設計語言的功用接口和數(shù)據(jù)庫管理器的專業(yè)語言。兩種驅(qū)動程序具有一定的相似之處,都能夠使Visual C++調(diào)用數(shù)據(jù)庫內(nèi)容。在Visual C++中,很多數(shù)據(jù)庫類都是經(jīng)過MPC類庫確定定義。如果編程階段使用ODBC,編程人員常常會利用CRecordSet(記錄集類)、CRecordView(可視記錄集類)、以及CDatabase(數(shù)據(jù)庫類)。CRecordSet(記錄集類)對象可以根據(jù)數(shù)據(jù)源進而提供相應的記錄集;CRecordView(可視記錄集類)對象利用控制的形式使數(shù)據(jù)庫記錄信息顯示出來,此視圖可以直接與CRecordSet(記錄集類)對象中表視圖連接;CDatabase(數(shù)據(jù)庫類)對象能夠有效提供出數(shù)據(jù)源的連接通道,可以方便編程人員開展數(shù)據(jù)源操作。
1.1數(shù)據(jù)鏈接
CRecordSet(記錄集類)可以對某種成員變量關系進行定義,例如說m_pDatabase:Cdatabasc*m_pDatabase,此指針可以指向相應數(shù)據(jù)庫類。如果在Open()函數(shù)之前調(diào)用 CRecordSet(記錄集類)對象,然后將打開的CDatabase類對象指針信息送達m_pDatabase,進而可以共享相同的CDatabase類對象。
1.2查詢記錄
通常情況下,利用OBDC進行記錄的查詢,主要選擇CRecordSet::Requery()函數(shù)、以及CRecordSa::Open()成員函數(shù)。需要優(yōu)先使用CRecordSa::Open()函數(shù)獲取記錄集,然后才可以運用CRecordSet類對象。如果已經(jīng)使用CRecordSa::Open()函數(shù),然后開展查詢工作時,即可使用CRecordSet::Requery()函數(shù)。特別強調(diào)的是,在實際的調(diào)動CRecordSet::Open()函數(shù)階段,編程人員如果已經(jīng)成功打開一個m_pDatabase成員變量,也就是CDatabase類對象指針發(fā)送到CRecordSet類對象中的變量,那么必須建立相應的ODBC連接,同時保證連接基于此數(shù)據(jù)庫對象;或者m_pDatabase為空指針,則需要立刻建立新的CDatabase類對象,并且保證其能夠與缺省數(shù)據(jù)源相連接,之后初始化操作CRecordSet類對象??梢岳肎etDefaultConnect()函數(shù)進行獲取。如果未曾發(fā)現(xiàn)指定的參數(shù),則程序止咳利用所缺省的SQL數(shù)據(jù),也就是GetDefaultSQL0函數(shù)中的SQL實現(xiàn)操作[2]。
2VC數(shù)據(jù)庫編程設計ADO方式
首先,需要明確OLE—DB概念,OLE—DB也就是利用部件的對象模型COM,作為一種訪問數(shù)據(jù)的接口。同所有COM對象一致的是,也可以對OLE—DB的任何一個對象進行查詢、撤銷、或者是創(chuàng)建??梢岳锰峁┱邅肀硎綩LE—DB的對象來源,Visual C++軟件包括了各類OLE—DB提供者,也可以是廠家升級相關數(shù)據(jù)庫的產(chǎn)品而提供的。OLE—DB具有更為明顯的優(yōu)勢,主要是任何一個Visual Studio產(chǎn)品都能夠與同一個提供者進行結合,比如說Visual Basi、Visual J++、Visual C++、以及Visual InterDe等等。此外,OLE—DB還能夠依賴事件,同樣與其他COM對象具有一致性??傊?,上述事件能夠自動闡述何時更新數(shù)據(jù)庫表,顯示其他編程中所生成的新項數(shù)據(jù),也可以是所請求的表在何時準備好,方便用戶查看[3]。
ADO不僅能夠利用VC的強大功能,同時能夠方便操作,可以將ADO模式數(shù)據(jù)庫的訪問作為實例分析,進而詳細說明VC環(huán)境下的數(shù)據(jù)庫具體應用。ADO具體編程方式如下所示:
2.1應用預處理指令#import
#import” C:/Program Fildes/ Common Files/ System/ A-DO/ msado15.
Dll/ no_namespace rename(“EOF”,“BndOfFile”)
編程人員在具體的程序編譯階段,VC++所讀出的msadol5.dll含有的類型庫信息,會自動產(chǎn)生2個此類型庫里的頭文件、以及msadol5.th以及msadol15.tli兩個實現(xiàn)文件。ADO所有對象和方法,都由上述兩個文件所定義,同時還包括一些常量等。
2.2利用讀取msado-l5.dll所包括的類型庫信息,也可以利用MFC里的CIDispatchDriver,然后建立一個同COleDispatch-Driver相關的派生類,最后利用其對ADO對象調(diào)用。
2.3可以直接使用COM提供的AP,可以使用下列代碼:
CLSID clsid;
HRESULT hr=::CLSID FromProglD ( L”ADODB.
Connemction”,
& dsid);
If (FAILED (hr) )
{…}
:CoCreatelmtance (clsid,NULL,CLSCTX_SERVER,
ID_Idispatch,(void**)
& pDispatch);
If (FAILED ( hr ) )
{…}
3總結
通過上述能夠看出,基于VC的數(shù)據(jù)庫編程主要采用ADO的設計方式,有利于促進數(shù)據(jù)局基本工程的有效實現(xiàn),同時能夠合理發(fā)揮出VC的最大性能,更加方便編程人員操作,保證程序開發(fā)的合理性和有效性。因此,該設計方法相仿合理,是一種非常理想的數(shù)據(jù)庫編程方法,具有一定的應用空間。
參考文獻:
[1]曹林林,張恒璟.基于VC6.0平臺的水準網(wǎng)平差數(shù)據(jù)庫設計與實現(xiàn)[J].測繪工程,2014,23(6):71-74.
[2]李艷.數(shù)據(jù)庫編程接口及其VC++應用程序設計[J].數(shù)字技術與應用,2014(4):182-182.
[3]秦筱瑞,趙高建.基于VC實現(xiàn)的數(shù)據(jù)庫備份恢復工具[J].信息通信,2014(9):80-82.
中圖分類號:P237
文獻標志碼:A
文章編號:1671-1602(2016)12-0039-02