微軟為了簡化使用者編寫資料庫應用程式,在MFC中將ODBC API的介面封裝起來,這就是MFC ODBC,實現了物件導向的資料庫編程介面。
MFC對ODBC API的封裝主要是開發了CDataBase類和CRecordSet類。
CDatabase類主要是為了建立應用程式和資料來源的串連功能。
CRecordSet類主要是對資料集的操作。
記錄的查詢:主要使用CRecordSet類的Open()方法和Requery()成員函數。在使用CRecordSet的類對象之前,必須使用CRecordSet的成員函數Open()來獲得有效記錄集。一旦使用過Open()函數,重新查詢時使用Requery()函數就可以了。
記錄的添加:只用AddNew()函數,不過必須保證在資料庫是在允許添加的模式開啟的。
記錄的刪除:調用Delete()函數完成,在使用完Delete()函數之後不用調用Update()函數了。
記錄的修改:調用Edit()函數完成,在使用過Edit()函數之後需要調用Update()函數將修改結果存入資料庫。
撤銷資料庫更新操作:如果在增加、刪除或者編輯記錄之後,想撤銷原來的操作,應該在Update()函數之前使用Move()函數。CRecordSet::Move(AFX_MOVE_REFRESH); 該函數用於撤消增加或修改模式,並恢複在增加或修改模式之前的目前記錄。其中參 數AFX_MOVE_REFRESH的值為零。
直接執行SQL操作:這個需要調用CDatabase類的ExecuteSQL()函數。需要注意的是,由於不同DBMS提供的資料動作陳述式不盡相同,直接執行SQL語句可能會破壞軟體的DBMS無關性,因此在應用中應當慎用此類操作。
MFC ODBC的資料庫操作過程:
首先,應用程式應該先建立與ODBC資料來源的串連,這個過程是使用CDatabase類的Open()函數實現的,然後CDatabase類的指標將被傳遞到CRecordSet類的建構函式中,使CRecordSet對象與原來的資料來源結合起來。完成了資料來源的串連之後,大量的操作集中在資料集之上。完成操作之後,先關閉所有記錄集的串連,然後關閉資料來源的串連。