詳述Visual C++語(yǔ)言編寫數(shù)據(jù)庫(kù)
目前,在Web開(kāi)發(fā)上,Visual C++語(yǔ)言沒(méi)有多大的市場(chǎng)。在企業(yè)級(jí)的應(yīng)用上,以Java、.NET(C#是其中重要的一員)居多,C++仍然占有一席之地,在這里拿出來(lái)和大家分享一下,希望本文能教會(huì)你更多東西。
一個(gè)基于odbc的應(yīng)用程序?qū)?shù)據(jù)庫(kù)的操作不依賴任何dbms,不直接與dbms打交道,所有的數(shù)據(jù)庫(kù)操作由對(duì)應(yīng)的dbms的odbc驅(qū)動(dòng)程序完成。也就是說(shuō),不論是foxpro、access還是oracle數(shù)據(jù)庫(kù),均可用odbc api進(jìn)行訪問(wèn)。由此可見(jiàn),odbc的***優(yōu)點(diǎn)是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫(kù)。
一個(gè)完整的Visual C++語(yǔ)言由下列幾個(gè)部件組成:
odbc管理器(administrator)。該程序位于windows 95控制面板(control panel)的32位odbc內(nèi),其主要任務(wù)是管理安裝的odbc驅(qū)動(dòng)程序和管理數(shù)據(jù)源。 驅(qū)動(dòng)程序管理器(driver manager)。驅(qū)動(dòng)程序管理器包含在odbc32.dll中,對(duì)用戶是透明的。其任務(wù)是管理odbc驅(qū)動(dòng)程序,是odbc中最重要的部件。 odbc api。
odbc 驅(qū)動(dòng)程序。是一些dll,提供了odbc和數(shù)據(jù)庫(kù)之間的接口。 數(shù)據(jù)源。數(shù)據(jù)源包含了數(shù)據(jù)庫(kù)位置和數(shù)據(jù)庫(kù)類型等信息,實(shí)際上是一種數(shù)據(jù)連接的抽象。 各部件之間的關(guān)系如圖下圖所示:
應(yīng)用程序要訪問(wèn)一個(gè)數(shù)據(jù)庫(kù),首先必須用odbc管理器注冊(cè)一個(gè)數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫(kù)位置、數(shù)據(jù)庫(kù)類型及odbc驅(qū)動(dòng)程序等信息,建立起odbc與具體數(shù)據(jù)庫(kù)的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給odbc,odbc就能建立起與相應(yīng)數(shù)據(jù)庫(kù)的連接。
在odbc中,odbc api不能直接訪問(wèn)數(shù)據(jù)庫(kù),必須通過(guò)驅(qū)動(dòng)程序管理器與數(shù)據(jù)庫(kù)交換信息。驅(qū)動(dòng)程序管理器負(fù)責(zé)將應(yīng)用程序?qū)dbc api的調(diào)用傳遞給正確的驅(qū)動(dòng)程序,而驅(qū)動(dòng)程序在執(zhí)行完相應(yīng)的操作后,將結(jié)果通過(guò)驅(qū)動(dòng)程序管理器返回給應(yīng)用程序。#t#
在訪問(wèn)odbc數(shù)據(jù)源時(shí)需要odbc驅(qū)動(dòng)程序的支持。用Visual C++語(yǔ)言安裝程序可以安裝sql server、 access、 paradox、 dbase、 foxpro、 excel、 oracle 和microsoft text等驅(qū)動(dòng)程序.在缺省情況下,vc5.0只會(huì)安裝sql server、 access、 foxpro和dbase的驅(qū)動(dòng)程序.如果用戶需要安裝別的驅(qū)動(dòng)程序,則需要重新運(yùn)行vc 5.0的安裝程序并選擇所需的驅(qū)動(dòng)程序。
1 ado是微軟整個(gè)com戰(zhàn)略體系中的一個(gè)組成部分
活動(dòng)數(shù)據(jù)對(duì)象(ado)是一組由微軟提供的com組件。 ado建立在微軟所提倡的com體系結(jié)構(gòu)之上,它的所有接口都是自動(dòng)化接口,因此在c++、visualbasic、delphi等支持com的開(kāi)發(fā)語(yǔ)言中通過(guò)接口都可以訪問(wèn)到ado。ado通過(guò)使用ole db這一新技術(shù)實(shí)現(xiàn)了以相同方式可以訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)、文本文件、非關(guān)系數(shù)據(jù)庫(kù)、索引服務(wù)器和活躍目錄服務(wù)等的數(shù)據(jù),擴(kuò)大了應(yīng)用程序中可使用的數(shù)據(jù)源范圍,從而成為微軟整個(gè)com戰(zhàn)略體系中訪問(wèn)數(shù)據(jù)源組件的***,是odbc的替代產(chǎn)品。
2 Visual C++語(yǔ)言模型組成
與微軟的其它數(shù)據(jù)訪問(wèn)模型dao和rdo相比,ado對(duì)象模型非常精煉,僅由三個(gè)主要對(duì)象connection、command、recordset和幾個(gè)輔助對(duì)象組成,其相互關(guān)系如圖所示。connection對(duì)象提供ole db數(shù)據(jù)源和對(duì)話對(duì)象之間的關(guān)聯(lián),它通過(guò)用戶名稱和口令來(lái)處理用戶身份的鑒別,并提供事務(wù)處理的支持;它還提供執(zhí)行方法,從而簡(jiǎn)化數(shù)據(jù)源的連接和數(shù)據(jù)檢索的進(jìn)程。command對(duì)象封裝了數(shù)據(jù)源可以解釋的命令,該命令可以是sql命令、存儲(chǔ)過(guò)程或底層數(shù)據(jù)源可以理解的任何內(nèi)容。#t#
record set用于表示從數(shù)據(jù)源中返回的表格數(shù)據(jù),它封裝了記錄集合的導(dǎo)航、記錄更新、記錄刪除和新記錄的添加等方法,還提供了批量更新記錄的能力。其它輔助對(duì)象則分別提供封裝ado錯(cuò)誤、封裝命令參數(shù)和封裝記錄集合的列。