一、mfc提供的odbc資料庫類
visual c++的mfc基類庫定義了幾個資料庫類。在利用odbc程式設計時,經常要使用到cdatabase(資料庫類)、crecordset(記錄集類)和crecordview(可視記錄集類)。
cdatabase類:提供了對資料來源的連線,通過它可以對資料來源進行操作。
crecordset類:提供了從資料來源中提取出的記錄集。
crecordview
類:以控制項的形式顯示資料庫記錄,這個檢視是直接連到乙個crecordset物件的表檢視。
二、應用odbc程式設計
重要機制:
rfx(record field exchange)
:記錄字段交換使記錄集(crecordset)和隱藏於後台的資料來源(datasource)之間建立起對應的關係。
cfieldexchange
類:處理資料交換,該類支援資料庫所使用的記錄集字段交換(rfx)程式。rfx在記錄集物件的字段資料成員與資料來源中當前記錄的相應字段之間交換資料。
例子:乙個典型的
dofieldexchange
函式void
cexpanseset::dofieldexchange(cfieldexchange* pfx)
ddx(dialog data exchange):
它在對話方塊上的控制項與記錄集的變數之間建立了一座橋梁,可以使它們雙向交換資料。
crecordview
類:顯示記錄,該物件用於在控制項中顯示資料庫記錄的檢視。這種檢視是一種直接連線到乙個crecordset物件的格式檢視,它從乙個對話方塊模板資源建立,並將crecordset物件的字段顯示在對話方塊模板的控制項裡。
例子:乙個典型的
dodataexchange
函式void
cexpanseview::dodataexchange(cdataexchange* pdx)
三、例項 1.
查詢記錄
查詢記錄使用crecordset::open()和crecordset::requery()成員函式。在使用crecordset類物件之前,必須使用crecordset::open()函式來獲得有效的記錄集。一旦已經使用過crecordset::open()函式,再次查詢時就可以應用crecordset::requery()函式。
在呼叫crecordset::open()函式時,如果將乙個已經開啟的cdatabase物件指標傳給crecordset類物件的m_pdatabase成員變數,則使用該資料庫物件建立odbc連線;否則如果m_pdatabase為空指標,就新建乙個cdatabase類物件,並使其與預設的資料來源相連,然後進行crecordset類物件的初始化。預設資料來源由getdefaultconnect()函式獲得。也可以提供所需要的sql語句,並以它來呼叫crecordset::open()函式,例如:super_esset.open(afx_database_use_default,strsql);
如果沒有指定引數,程式則使用預設的sql語句,即對在getdefaultsql()函式中指定的sql語句進行操作。
在查詢過程中,也可以利用crecordset的成員變數m_strfilter和m_strsort來執行條件查詢和結果排序。m_strfilter為過濾字串,存放著sql語句中where後的條件串;m_strsort為排序字串,存放著sql語句中order by後的字串。如:
super_esset.m_strfilter=″type=『電動機』″;
super_esset.m_strsort=″voltage″;
super_esset.requery();
資料庫 MFC ODBC 四
7 滾動記錄 crecordset提供了幾個成員函式用來在記錄集中滾動。當用這些函式滾動到乙個新記錄時,框架會自動地把新記錄的內容拷貝到域資料成員中。void movenext 前進乙個記錄 void moveprev 後退乙個記錄 void movefirst 滾動到記錄集中的第乙個記錄 void...
資料庫 MFC ODBC 二
三 crecordset類 1 isbof與iseof 1 isbof 如果記錄集沒有記錄,或已經向前游動到第乙個記錄之前,則返回非零 否則返回0。詳細說明如下 1 訪問open函式之後,如果記錄集沒有任何記錄,isbof返回非零。當你開啟乙個至少包含乙個記錄的記錄集,第乙個記錄是當前記錄,此時is...
MFC ODBC資料庫開發技術
1.mfc odbc 主要類的介紹 visual c 提供了mfc odbc 類,封裝了odbc api,這使得利用mfc來建立odbc的應用程式非常簡便。在mfc odbc類中,常用的類有cdatabase 資料庫類 crecordset 記錄集類 crecordview 可視記錄集類 和cdbe...