MFC的CRECORDSET對資料庫的操作

2021-06-07 22:01:44 字數 1490 閱讀 9201

mfc資料庫操作系列—資料中間層(crecordset)

mfc資料庫介面分為兩種:odbc和ole db 。odbc而言提供開放的訪問方式,使用較為簡單,但是需要註冊資料庫,這導致在部署應用程式的時候需要重新布置資料庫,並且個人意見:資料庫操作不涉及大量的資料交換建議使用。

crecordset為資料庫和應用程式之間交換資料提供和很好的封裝。掌握crecordset必要的字段和方法功能就能夠順利的開發出應用程式。

crecordset是具體應用程式的資料中間層得基類,提供基本的資料操作。

具體操作:

1.      建立派生於crecordset的類,

2.      正確的getdefaultconnection的返回值和getdefaultcommand的返回值。

3.      建立好命令和鏈結後呼叫函式open,啟動資料查詢。

4.      讀取獲取的值,各個列的值。

5.      獲取下一列只需要呼叫movenext方法。然後讀取各個欄位的值。

6.      close方法關閉。

注意:開啟資料集後的getrecordset的返回值並不是資料集中的記錄數量,遍歷所有記錄,將自動改變資料記錄數量。

修改資料庫內容:

1.      呼叫edit方法;

2.      修改需要修改的字段

3.      呼叫update方法

注意:如果需要修改資料庫則需要在開啟模式中指定為dynaset,也可定為dynamic,但是一些系統不支援dynamic。

資料庫修改多張**。

和單錶操作一樣,但是需要注意幾個地方:

1.      資料集的建構函式中需要正確的指出欄位的數量;

2.      定義public的成員變數的目的在於其餘類可以訪問資料資訊。所以資料成員可以隨便定義。

3.      在dofieldexchange函式中設定正確的資料型別交換函式。注意此處的ddx_***中的第二個引數是字段的名稱。可以是sql中任何的合法欄位名,可以不加【】;

儲存過程

1.      呼叫open方法,或者在getdefaultsql函式中返回值設定。

2.      呼叫形式為的sql語句,其中procedure為儲存過程名稱;parameters為儲存過程引數。

3.  在dofieldexchange()中設定引數的方向和值:
// output parameter pfx->setfieldtype(cfieldexchange::outputparam);
rfx_long(pfx, _t("instructor_count"), m_ncountparam);

// input parameter

pfx->setfieldtype(cfieldexchange::inputparam);

rfx_text(pfx,_t("department_name"), m_strnameparam);

4.      呼叫結束

一般的資料操作就這樣完成。

MFC對程序的處理

通過程序名獲得程序控制代碼 handle 通過程序名獲得程序id dword 通過程序名判斷程序是否在執行 通過多個程序名判斷程序是否在執行 通過程序名殺死程序 通過多個程序名殺死多個程序 通過程序名獲得程序控制代碼 handle handle cprocesspro getprocesshandl...

duilib對MFC的支援

關注duilib很久了,前段時間剛好有個mfc專案,對ui要求比較高,苦於duilib是基於win32開發的,而我對win32只有皮毛的了解,只好試著看源 發現裡面有mfc的乙個demo,但是編譯通不過,無奈只好試著看作者的思路,經過幾天的摸索,終於成功運用到mfc專案中。先上效果圖,再解釋 上 1...

對MFC開發的思考

做了三年的mfc開發,現狀不好的地方 1mfc工資不高。2w是我的目標,似乎只有專案經理才能給這麼多錢。2一般所使用的技術都不難。都是和儀器或裝置配套使用,技術難的地方在嵌入式 比如dsp 或硬體,而不是mfc。3自己沒有開發方向。覺得這是自己所做專案決定的。能學到的東西只能由專案決定。都是一些應用...