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自己沒有開發方向。覺得這是自己所做專案決定的。能學到的東西只能由專案決定。都是一些應用...