Visual C++ 中的ODBC編程的介紹
2024-07-15 01:59:39
供稿:網(wǎng)友
一.概述
ODBC 是一種使用SQL 的程序設(shè)計(jì)接口。使用ODBC 讓?xiě)?yīng)用程序的編寫(xiě)者避免了與數(shù)據(jù)源相聯(lián)的復(fù)雜性。這項(xiàng)技術(shù)目前已經(jīng)得到了大多數(shù)DBMS 廠商們的廣泛支持。
Microsoft Developer Studio 為大多數(shù)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)格式提供了32 位ODBC 驅(qū)動(dòng)器。這些標(biāo)準(zhǔn)數(shù)據(jù)格式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle 以及Microsoft Text。如果用戶希望使用其他數(shù)據(jù)格式,用戶需要相應(yīng)的ODBC 驅(qū)動(dòng)器及DBMS。
用戶使用自己的DBMS 數(shù)據(jù)庫(kù)管理功能生成新的數(shù)據(jù)庫(kù)模式后,就可以使用ODBC 來(lái)登錄數(shù)據(jù)源。對(duì)用戶的應(yīng)用程序來(lái)說(shuō),只要安裝有驅(qū)動(dòng)程序,就能注冊(cè)很多不同的數(shù)據(jù)庫(kù)。登錄數(shù)據(jù)庫(kù)的具體操作參見(jiàn)有關(guān)ODBC 的聯(lián)機(jī)幫助。
二.MFC 提供的ODBC 數(shù)據(jù)庫(kù)類(lèi)
Visual C++ 的MFC 基類(lèi)庫(kù)定義了幾個(gè)數(shù)據(jù)庫(kù)類(lèi)。在利用ODBC 編程時(shí),經(jīng)常要使用到CDatabase( 數(shù)據(jù)庫(kù)類(lèi)),CRecordSet( 記錄集類(lèi)) 和CRecordView( 可視記錄集類(lèi))。其中:
CDatabase 類(lèi)對(duì)象提供了對(duì)數(shù)據(jù)源的連接,通過(guò)它你可以對(duì)數(shù)據(jù)源進(jìn)行操作。
CRecordSet 類(lèi)對(duì)象提供了從數(shù)據(jù)源中提取出的記錄集。CRecordSet 對(duì)象通常用于兩種形式:動(dòng)態(tài)行集(dynasets)和快照集(snapshots)。動(dòng)態(tài)行集能保持與其他用戶所做的更改保持同步。快照集則是數(shù)據(jù)的一個(gè)靜態(tài)視圖。每一種形式在記錄集被打開(kāi)時(shí)都提供一組記錄,所不同的是,當(dāng)你在一個(gè)動(dòng)態(tài)行集里滾動(dòng)到一條記錄時(shí),由其他用戶或是你應(yīng)用程序中的其他記錄集對(duì)該記錄所做的更改會(huì)相應(yīng)地顯示出來(lái)。
CRecordView 類(lèi)對(duì)象能以控制的形式顯示數(shù)據(jù)庫(kù)記錄。這個(gè)視圖是直接連到一個(gè)CRecordSet 對(duì)象的表視圖。
三.應(yīng)用ODBC 編程
應(yīng)用Visual C++ 的AppWizard 可以自動(dòng)生成一個(gè)ODBC 應(yīng)用程序框架。方法是:打開(kāi)File 菜單的New 選項(xiàng),選取Projects,填入工程名,選擇MFC AppWizard (exe),然后按AppWizard 的提示進(jìn)行操作。當(dāng)AppWizard 詢問(wèn)是否包含數(shù)據(jù)庫(kù)支持時(shí),如果你想讀寫(xiě)數(shù)據(jù)庫(kù),那么選定Database view with file support;而 閬敕夢(mèng)適菘獾男畔⒍幌牖匭此齙母謀洌敲囪《―atabase view without file support 選項(xiàng)就比較合適了。選擇了數(shù)據(jù)庫(kù)支持之后Database Source 按鈕會(huì)激活,選中它去調(diào)用Data Options 對(duì)話框。在Database Options 對(duì)話框中會(huì)顯示已向ODBC 注冊(cè)的數(shù)據(jù)庫(kù)資源,選定你所要操作的數(shù)據(jù)庫(kù),如:Super_ES,單擊OK 后會(huì)出現(xiàn)Select Database Tables 對(duì)話框,其中列舉了你所選中的數(shù)據(jù)庫(kù)中包含的全部表,選擇你希望操作的表后,單擊OK。在選定了數(shù)據(jù)庫(kù)和數(shù)據(jù)表之后,你可以按照慣例繼續(xù)進(jìn)行AppWizard 操作。
特別需要指出的是:在生成的應(yīng)用程序框架View 類(lèi)(如:CSuper_ESView)中包含一個(gè)指向CSuper_ESSet 對(duì)象的指針m_pSet,該指針由AppWizard 建立,目的是在視表單和記錄集之間建立聯(lián)系,使得記錄集中的查詢結(jié)果能夠很容易地在視表單上顯示出來(lái)。有關(guān)m_pSet 的詳細(xì)用法可以參見(jiàn)Visual C++ Online Book。