◆吳小欣
?
基于VC的數(shù)據(jù)庫(kù)編程設(shè)計(jì)與實(shí)現(xiàn)
◆吳小欣
(91550部隊(duì) 遼寧 116023)
VC工具有比較強(qiáng)大的編程性能,在編程過(guò)程中起著非常重要的作用,因此廣受編程人員的關(guān)注和重視。隨著我國(guó)計(jì)算機(jī)技術(shù)以及電子信息技術(shù)的蓬勃發(fā)展,對(duì)于編程人員的專業(yè)技術(shù)也提出了更高的要求,全面掌握 VC 技術(shù)是保證能夠更好地實(shí)現(xiàn)數(shù)據(jù)庫(kù)編程工作的基礎(chǔ)。本文對(duì)以VC為基礎(chǔ)的數(shù)據(jù)庫(kù)編程設(shè)計(jì)與實(shí)現(xiàn)展開了探討和分析,希望可以為相關(guān)程序設(shè)計(jì)人員提供一定的參考。
VC;數(shù)據(jù)庫(kù)編程;設(shè)計(jì)研究
目前的社會(huì)發(fā)展進(jìn)程中,由于計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的應(yīng)用和發(fā)展,在社會(huì)的相關(guān)行業(yè)領(lǐng)域中已經(jīng)大規(guī)模運(yùn)用了計(jì)算機(jī)技術(shù),最大程度轉(zhuǎn)變了人們的生活以及生產(chǎn)方式。在現(xiàn)如今信息化和數(shù)字化的時(shí)代,極大一部分計(jì)算機(jī)編程語(yǔ)言譬如 C 語(yǔ)言、JAVA等備受行業(yè)人員的關(guān)注,編程語(yǔ)言在很多程序的開發(fā)中都起著極為關(guān)鍵的作用。譬如,數(shù)據(jù)庫(kù)編程的設(shè)計(jì),通過(guò) VC 開發(fā)工具的支撐,給相關(guān)的編程人員帶來(lái)非常大的便捷。VC是 Windows平臺(tái)上最為優(yōu)秀的 C 語(yǔ)言編程環(huán)境 ,它具有其自身獨(dú)有的特征,即使在學(xué)習(xí) V C 的過(guò)程中還要對(duì)Windows平臺(tái)的多數(shù)性能進(jìn)行充分的了解,全面掌握 COM 、ALT 等相關(guān)的內(nèi)容,其掌握起來(lái)具有比較大的難度,因此良好的編程環(huán)境是必不可少的,是進(jìn)行相應(yīng)內(nèi)容掌握的基礎(chǔ)條件。實(shí)現(xiàn)數(shù)據(jù)庫(kù)的建立開發(fā)時(shí),V C 身為一個(gè)非常重要的編程工具,起著非常重要的作用,本文主要研究分析V C條件下的數(shù)據(jù)庫(kù)編程,供程序員參考和借鑒。
從以數(shù)據(jù)庫(kù)管理作為運(yùn)營(yíng)中心的角度上來(lái)說(shuō),例如Access、Oracle、FoxPro 及 dBASEIV等,在創(chuàng)建數(shù)據(jù)庫(kù)管理器等方面相應(yīng)產(chǎn)品都發(fā)揮了自己的優(yōu)勢(shì)特點(diǎn),實(shí)際運(yùn)用商業(yè)數(shù)據(jù)庫(kù)的過(guò)程中,可以在Delphi和VisualBasic等環(huán)境下建立起管理器,也就是說(shuō)在 Delphi和 VisualBasic 等環(huán)境下,程序設(shè)計(jì)的實(shí)際過(guò)程會(huì)比較簡(jiǎn)單,能夠幫助數(shù)據(jù)庫(kù)進(jìn)行開發(fā)工作,而V C環(huán)境從實(shí)質(zhì)上來(lái)說(shuō)并不合適部分?jǐn)?shù)據(jù)庫(kù)的建立工作。但是,數(shù)據(jù)庫(kù)的基本功能特征具有特殊性,對(duì)于數(shù)據(jù)庫(kù)的軟件編寫來(lái)說(shuō)是比較有利的。但在數(shù)據(jù)庫(kù)的功能擴(kuò)展方面還沒(méi)有實(shí)現(xiàn),因此數(shù)據(jù)庫(kù)的功能比較有限。要想開發(fā)數(shù)據(jù)庫(kù)自身更復(fù)雜的功能應(yīng)用,就需要相應(yīng)的編程軟件輔助完成,VC的作用就在于能夠提供良好的編程環(huán)境。因?yàn)閂C的底層支持能力強(qiáng)大,編寫數(shù)據(jù)庫(kù)的實(shí)際過(guò)程中能夠提供底層訪問(wèn)和實(shí)時(shí)訪問(wèn)。例如編寫數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序和實(shí)用程序時(shí),處于VC環(huán)境下的編程應(yīng)用的實(shí)際意義就更加深刻。
(1)ADO設(shè)計(jì)模式
對(duì)于ADO的設(shè)計(jì)模式要進(jìn)行一定程度的了解,就要先掌握和理解OLE-DB的含義。我們從這個(gè)模式的名稱中就可以發(fā)現(xiàn),OLE可以為數(shù)據(jù)庫(kù)提供接口,和COM的基本特點(diǎn)相同,對(duì)于某一對(duì)象可以自由的進(jìn)行建立、查詢和撤銷工作。OLE-DB的對(duì)象來(lái)源,被稱作是提供者。VC 軟件包的一部分由多個(gè)不同的提供者構(gòu)成,但是,廠商實(shí)現(xiàn)產(chǎn)品的處理升級(jí)階段時(shí)也會(huì)予以提供。OLE-DB的優(yōu)勢(shì)特點(diǎn)明顯,也就是一個(gè)提供者和所有的Visual Studio產(chǎn)品進(jìn)行精準(zhǔn)匹配。但COM有共用點(diǎn),OLE-DB 也依賴于基本事件,可以實(shí)時(shí)的更新改變數(shù)據(jù)庫(kù)信息,方便第一時(shí)間查看和改進(jìn)數(shù)據(jù)庫(kù)相應(yīng)用戶的資料信息,以傳輸信號(hào)形式對(duì)于數(shù)據(jù)庫(kù)進(jìn)行通知,提前告知實(shí)施的操作以及可能產(chǎn)生的錯(cuò)誤信息。ADO方式不是解決數(shù)據(jù)庫(kù)訪問(wèn)最基礎(chǔ)的方案,針對(duì)OLE-DB而言,是數(shù)據(jù)庫(kù)進(jìn)行通信的前提條件,而ADO從某個(gè)角度上說(shuō)是對(duì)于OLE-DB的包裝。因此,實(shí)現(xiàn)運(yùn)用時(shí),一般是避開ADO,直接應(yīng)用OLE-DB,但合理運(yùn)用ADO也能夠使程序應(yīng)用開發(fā)的速度加快。
(2)ODBC設(shè)計(jì)方式
最初,微軟的目標(biāo)是開放數(shù)據(jù)庫(kù)互連,微軟最早引入的數(shù)據(jù)庫(kù)接口技術(shù)就是ODBC,從某個(gè)角度來(lái)說(shuō),ODBC是ADO技術(shù)的前身。引入這種技術(shù)并投入使用主要是因?yàn)槔梅钦Z(yǔ)言專用方式,可以提供給程序管理員簡(jiǎn)單的方位數(shù)據(jù)庫(kù)。在這樣的前提背景之下,因此編程操作人員進(jìn)行Access Basic或DBF文件實(shí)際訪問(wèn)時(shí),對(duì)于X base 程序語(yǔ)言不用深入了解就能獲取MDB文件中的數(shù)據(jù)信息。和Windows在工作的狀態(tài)上是等同的,為了完成基本的操作任務(wù)ODBC選取了包含在DLL下的驅(qū)動(dòng)程序。實(shí)際設(shè)計(jì)的方式提供了兩個(gè)方面的驅(qū)動(dòng)程序:一是數(shù)據(jù)管理器語(yǔ)言。二是程序設(shè)計(jì)語(yǔ)言公用接口。在這樣的條件下VC就可以利用公用接口調(diào)用函數(shù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn),其中所運(yùn)用的函數(shù)就是程序產(chǎn)生交叉的點(diǎn)。除此之外,和ODBC產(chǎn)生關(guān)聯(lián)的實(shí)用程序,例如掌控管理ODBC的數(shù)據(jù)源。
運(yùn)用具有強(qiáng)大功能的VC,訪問(wèn)數(shù)據(jù)庫(kù)的分析工作可以利用ADO的設(shè)計(jì)方式,對(duì)在VC基礎(chǔ)條件下的數(shù)據(jù)庫(kù)編程的流程和實(shí)現(xiàn)進(jìn)行解釋說(shuō)明。
(1)首先要初始化運(yùn)行COM庫(kù),導(dǎo)入ADO庫(kù)的定義文件;
(2)和數(shù)據(jù)庫(kù)進(jìn)行連接溝通,使用Connection對(duì)象的具體方式;
(3)創(chuàng)建基本的聯(lián)動(dòng)之后,利用 Command、Connection 對(duì)象,開始執(zhí)行SQ L基本命令;運(yùn)用 Recordset對(duì)象的方式,將實(shí)踐結(jié)果進(jìn)行收錄,之后進(jìn)行查詢和處理工作;
(4)最后將基本的連接關(guān)閉,釋放對(duì)象。
一般來(lái)說(shuō),應(yīng)該存儲(chǔ)數(shù)據(jù)庫(kù)的開發(fā)過(guò)程時(shí)產(chǎn)生的龐大的二進(jìn)制數(shù)據(jù)對(duì)象,包括圖像和音源文件以及二進(jìn)制數(shù)據(jù),這部分總體的儲(chǔ)存數(shù)據(jù)稱為二進(jìn)制大對(duì)象,和BLOB的含義對(duì)等,但存取的過(guò)程、方式,和普通數(shù)據(jù)的處理形式具有本質(zhì)上的差別,本篇文章中對(duì)于BLOB數(shù)據(jù)實(shí)現(xiàn)存取的完整過(guò)程主要是運(yùn)用ADO來(lái)完成的。BLOB數(shù)據(jù)和普通的數(shù)據(jù)不同,不能直接的進(jìn)行存取,因此AppendC hunk函數(shù)就起到了重要的作用,這個(gè)函數(shù)屬于Field 對(duì)象,其原型是HRESULTA ppendC hunk,以下是代碼分析的詳細(xì)過(guò)程:
假設(shè) m -pBM PBuffer的指針指向某一二進(jìn)制數(shù)據(jù),假設(shè)該二進(jìn)制數(shù)據(jù)為一長(zhǎng)度為 m -nFileLen,且已經(jīng)將記錄集對(duì)象 m -pR ecordset順利的打開。
圖1 代碼分析過(guò)程
綜上所述,在對(duì)數(shù)據(jù)庫(kù)編程進(jìn)行設(shè)計(jì)的過(guò)程中,VC是一個(gè)極其強(qiáng)大的工具。利用Microsoft數(shù)據(jù)庫(kù)中的應(yīng)用程序運(yùn)行開發(fā)的新接口就是ADO。這是一種高層數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),創(chuàng)建在 OLE/DB 基礎(chǔ)上。在 VC 之下通過(guò) ADO方式來(lái)進(jìn)行數(shù)據(jù)庫(kù)的編程設(shè)計(jì)不僅可以利用VC的良好特征,更可以為編程人員提供方便,因?yàn)閂C的數(shù)據(jù)庫(kù)編程主要運(yùn)用ADO的設(shè)計(jì)方式,有助于推進(jìn)數(shù)據(jù)局基本工程的有效實(shí)現(xiàn),并且可以合理的發(fā)揮出 VC 的最大優(yōu)勢(shì),更加便于編程人員操作,確保程序開發(fā)的合理性以及有效性。所以,這種設(shè)計(jì)方法更為合理,是一種極其合適的數(shù)據(jù)庫(kù)編程方法,具有一定的應(yīng)用空間。
[1]余云利.應(yīng)用于自主可編程邏輯控制器的實(shí)時(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué),2017.
[2]邱暢,王濤.基于VC的數(shù)據(jù)庫(kù)編程設(shè)計(jì)與實(shí)現(xiàn)[J].西部皮革,2016.
[3]羅莎.基于VC的數(shù)據(jù)庫(kù)編程設(shè)計(jì)與實(shí)現(xiàn)研究[J].軟件,2012.
[4]王斌.基于VC的數(shù)據(jù)庫(kù)編程設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2012.
[5]吳兵,唐向陽(yáng),劉玉萍,張楠.實(shí)現(xiàn)Access數(shù)據(jù)庫(kù)網(wǎng)上查詢的編程設(shè)計(jì)[J].西南民族學(xué)院學(xué)報(bào)(自然科學(xué)版),2002.
[6]范麗萍.基于計(jì)算機(jī)軟件工程的數(shù)據(jù)庫(kù)編程技術(shù)[J].電子技術(shù)與軟件工程,2017.