優(yōu)勝從選擇開始,我們是您最好的選擇!—— 中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)
0373-5939925
2851259250@qq.com
我要檢測 我要投稿 合法期刊查詢
您的位置:網(wǎng)站首頁 > 優(yōu)秀論文 > 正文

VisualC+中的ODBC技術(shù)

作者:李海燕來源:原創(chuàng)日期:2012-12-25人氣:1150

ODBC的組成部件
(1)應(yīng)用程序(Application)。
(2)ODBC管理器(Administrator)。該程序位于Windows控制面板(ControlPanel)的32位ODBC內(nèi),其主要任務(wù)是管理安裝的ODBC驅(qū)動程序和管理數(shù)據(jù)源。
(3)驅(qū)動程序管理器(DriverManager)。驅(qū)動程序管理器包含在ODBC32.DLL中,對用戶是透明的。其任務(wù)是管理ODBC驅(qū)動程序,是ODBC重要的部件。
(4)ODBCAPI。
(5)ODBC驅(qū)動程序。是一些DLL,提供了ODBC和數(shù)據(jù)庫之間的接口。
(6)數(shù)據(jù)源。數(shù)據(jù)源包含了數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等信息,是一種數(shù)據(jù)連接的抽象。
應(yīng)用程序要訪問一個數(shù)據(jù)庫,首先必須用ODBC管理器注冊一個數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、類型及ODBC驅(qū)動程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建起與相應(yīng)數(shù)據(jù)庫的連接。
在ODBC中,ODBCAPI不能直接訪問數(shù)據(jù)庫,必須通過ODBC驅(qū)動程序管理器與數(shù)據(jù)庫交換信息。驅(qū)動程序管理器負(fù)責(zé)將應(yīng)用程序?qū)DBCAPI的調(diào)用傳遞給驅(qū)動程序,而驅(qū)動程序在執(zhí)行完相應(yīng)的操作后,將結(jié)果通過驅(qū)動程序管理器返回給應(yīng)用程序。
一、VisualC++中MFC的ODBC應(yīng)用
在VisualC++中,MFC(MicrosoftFoundationClass基本類庫)是經(jīng)過對Windows應(yīng)用程序中各個部件進(jìn)行類的抽象而建立的一組預(yù)定義的類,如窗口基類(CWnd)、各種窗口派生類等等,這些類在應(yīng)用程序中可直接使用,不需要重新定義。在MFC中,也為ODBC預(yù)定義了幾個類,其中主要的是數(shù)據(jù)庫類(CDatabase)和記錄集合類(CRecoredset)。這兩個類既有聯(lián)系又有區(qū)別,在應(yīng)用程序中,可以分別使用,也可以同時使用,每一類也可以同時存在多個對象。CDatabase類主要功能是建立了一個數(shù)據(jù)源的連接,CRecordset類代表了從一個數(shù)據(jù)表中按預(yù)定的查詢條件獲得的記錄的集合。一般說來,前者適宜于對數(shù)據(jù)源下的某個數(shù)據(jù)表進(jìn)行整體操作,后者用于對所選的記錄集合進(jìn)行處理。CDatabase類中并不包含所有的ODBCAPI函數(shù),大部分操作功能仍須直接調(diào)用ODBCAPI函數(shù)。
概括的說,CDatabase針對某個數(shù)據(jù)庫,它負(fù)責(zé)連接數(shù)據(jù)庫;CRecordset針對數(shù)據(jù)源中的記錄集,它負(fù)責(zé)對記錄的操作。而另外的函數(shù)如CRecordView負(fù)責(zé)界面,CFieldExchange負(fù)責(zé)CRecordset與數(shù)據(jù)源的數(shù)據(jù)交換。下面就介紹ODBC的應(yīng)用:
(一)建立與數(shù)據(jù)源的連接
應(yīng)先構(gòu)造一個CDatabase對象,然后再調(diào)用CDatabase的Open成員函數(shù)。
對象名.Open(lpszDSN,bExclusive,bReadOnly,lpszConnect);
打開函數(shù)需要輸入四個參數(shù)。lpszDSN:要連接的數(shù)據(jù)源的名字,如果lpszDSN=NULL且lpszConnect中也沒有指明數(shù)據(jù)源名,則該調(diào)用會自動出現(xiàn)一個對話框列出所有可用的數(shù)據(jù)源(名),讓用戶選擇。bExclusive:只支持“凹”儔(False)值,表示為共享(share)方式連接。因此,應(yīng)用程序在運(yùn)行前,一定要裝入share.exe或在Windows的system.ini中裝入vshare.386。ReadOnly:指明數(shù)據(jù)源操作方式是“爸歡”簾還是可以修改。lpszConnect:指明連接字符串,包括數(shù)據(jù)源名、用戶標(biāo)識碼、口令等信息。該字符串必須以“癘;”笨?表示該連接是與一個ODBC數(shù)據(jù)源的連接(考慮以后版本支持非ODBC數(shù)據(jù)源)。要從一個數(shù)據(jù)源中脫離,可調(diào)用函數(shù)Close.
(二)操作數(shù)據(jù)表
數(shù)據(jù)源打開后,即可對數(shù)據(jù)庫文件中的數(shù)據(jù)表進(jìn)行操作,操作以調(diào)用SQL語句方式進(jìn)行,可直接通過ODBCAPI函數(shù),或者CDatabase類成員函數(shù)ExecuteSQL。
(三)建立和關(guān)閉記錄集
首先要構(gòu)造一個CRecordset派生類對象,然后調(diào)用Open成員函數(shù)查詢數(shù)據(jù)源的記錄并建立記錄集,用戶可隨時調(diào)用Requery成員函數(shù)來重新查詢和建立記錄集。調(diào)用無參成員函數(shù)Close可以關(guān)閉記錄集。
(四)選取記錄和字段
在調(diào)用Open函數(shù)時,即獲得了符合條件的一組記錄,條件語句在Open函數(shù)中的lpszSQL中給出,如果lpszSQL為NULL,則必須重載CRecordset的函數(shù)以提供該語句。調(diào)用CRecordset的滾動(scroll)成員函數(shù):MoveFirst(),M
oveNext(),MovePrev(),MoveLast()等,用來在記錄集中上下滾動。
(五)修改、添加和刪除記錄
先調(diào)用Edit成員函數(shù)進(jìn)入編輯模式,程序可修改數(shù)據(jù)成員,再調(diào)用Update函數(shù)完成編輯。
要添加新記錄,可調(diào)用AddNew成員函數(shù)進(jìn)入添加模式,再調(diào)用Update函數(shù)完成添加。
要刪除當(dāng)前記錄,調(diào)用Delete成員函數(shù)。該函數(shù)會同時給記錄集和數(shù)據(jù)源中當(dāng)前記錄加上刪除標(biāo)記,再調(diào)用Update函數(shù)完成刪除。
從以上可以看出,ODBC應(yīng)用程序只需關(guān)心數(shù)據(jù)的處理而不必費(fèi)心數(shù)據(jù)的存取,利用VisualC++中的MFC類函數(shù)成員,用戶可以方便地建立數(shù)據(jù)庫應(yīng)用程序。

網(wǎng)絡(luò)客服QQ: 沈編輯

投訴建議:0373-5939925????投訴建議QQ:

招聘合作:2851259250@qq.com (如您是期刊主編、文章高手,可通過郵件合作)

地址:河南省新鄉(xiāng)市金穗大道東段266號中州期刊聯(lián)盟 ICP備案號:豫ICP備2020036848

【免責(zé)聲明】:中州期刊聯(lián)盟所提供的信息資源如有侵權(quán)、違規(guī),請及時告知。

版權(quán)所有:中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)

關(guān)注”中州期刊聯(lián)盟”公眾號
了解論文寫作全系列課程

核心期刊為何難發(fā)?

論文發(fā)表總嫌貴?

職院單位發(fā)核心?

掃描關(guān)注公眾號

論文發(fā)表不再有疑惑

論文寫作全系列課程

掃碼了解更多

輕松寫核心期刊論文

在線留言