精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Visual C++中用MFC ODBC操作Access數據庫

運維 數據庫運維
本文通過一個應用實例,討論了利用MFC ODBC技術實現對Access數據源的顯示,在此基礎上,分析了如何設計以達到利用MFC ODBC來實現修改、增加、刪除Access數據源中的記錄的功能。

本實例是某項目中的一部分,目的是實現MFC ODBC數據庫與Access數據表格之間的相互操作。包括用Visual C++中的MFC ODBC技術實現對Access數據表格的內容的顯示、添加、修改和刪除的功能。

1、ODBC數據源的創建

筆者使用的操作系統為Windows XP,工具是Visual C++6.0。此例中建立的Access表格取名為“plc”。

在“控制面板”中雙擊“管理工具”圖標,然后在新出現的窗口中雙擊“數據源(ODBC)”,在彈出的對話框中選中“用戶DSN”中的“dBASE Files”,單擊“添加”按鈕,從彈出的對話框中選中“Microsoft Access Driver(*.mdb)”。單擊“完成”后,將彈出一個新的對話框,在數據源名及說明后的編輯框中填入表格名“plc”。

在命名數據源之后,需要把它連接到一個數據庫。單擊“選擇”,如圖1所示,得到存儲在數據目錄中plc.mdb的拷貝文件,選中之,單擊“確定”關閉此對話框。然后單擊“確定”,完成數據源的創建。

Visual C++中用MFC ODBC操作Access數據庫

2、 使用AppWizard創建一個數據庫應用程序

筆者開始從AppWizard開始創建一個新的MFC AppWizard(exe)項目。命名為Jh,然后遵從以下步驟:

1) 在MFC AppWizard第一步對話框中,選擇“單個文檔”。

2) 在MFC AppWizard第二步對話框中,選擇“查看數據庫不使用文件支持”,再單擊“Data Source”。

3)在RecordSet Type組框中,選擇Dynaset。在Data Source組框中,單擊ODBC單選按鈕,然后從下拉列表中選擇plc,如圖2所示,單擊ok,在彈出的新的對話框中選中message,即為本項目所要操作的表。

Visual C++中用MFC ODBC操作Access數據庫

以后幾步接收缺省值,單擊“完成”即可。至此,已創建一個應用程序,并且在程序中自行生成一個數據源和數據源中的一個表的相關程序,其程序清單如下:

  1. class CJhSet : public Crecordset//基于CRecordset的CjhSet新類  
  2.  
  3. {  
  4.  
  5. public:  
  6.  
  7. CJhSet(CDatabase* pDatabase = NULL);  
  8.  
  9. DECLARE_DYNAMIC(CJhSet)  
  10.  
  11. // Field/Param Data  
  12.  
  13. //{{AFX_FIELD(CJhSet, CRecordset)  
  14.  
  15. //對應表中一些被綁定字段的變量  
  16.  
  17. CString m_baudrate;  
  18.  
  19. CString m_type;  
  20.  
  21. CString m_unit;  
  22.  
  23. CString m_number;  
  24.  
  25. CString m_address;  
  26.  
  27. CString m_istart;  
  28.  
  29. CString m_iend;  
  30.  
  31. CString m_ostart;  
  32.  
  33. CString m_oend;  
  34.  
  35. //}}AFX_FIELD  
  36.  
  37. // Overrides  
  38.  
  39. // ClassWizard generated virtual function overrides  
  40.  
  41. //{{AFX_VIRTUAL(CJhSet)  
  42.  
  43. public:  
  44.  
  45. virtual CString GetDefaultConnect(); // 返回被連接的數據源名稱  
  46.  
  47. virtual CString GetDefaultSQL(); // 返回數據源中所選表名稱  
  48.  
  49. virtual void DoFieldExchange(CFieldExchange* pFX); // RFX support  
  50.  
  51. //}}AFX_VIRTUAL  
  52.  
  53. // Implementation  
  54.  
  55. #ifdef _DEBUG  
  56.  
  57. virtual void AssertValid() const;  
  58.  
  59. virtual void Dump(CDumpContext& dc) const;  
  60.  
  61. #endif}; 

3、 實現程序的顯示記錄的功能

一旦AppWizard完成編寫這些文件,它將啟動對話框編輯器,這樣就可以設計自己的表單了。CRecordView應用程序圍繞著充當應用程序主窗口的對話框而創建。筆者也將使用像表單一樣的對話框來顯示存儲在plc數據庫記錄域中的值。如圖3所示來放置靜態文本框與編輯文本框。

Visual C++中用MFC ODBC操作Access數據庫

CJHSet類的成員變量如圖4所示。所有的變量均為CString對象。由AppWizard創建的每個變量的類型一般與相應數據庫域的類型相似。除了創建成員變量,AppWizard還編寫了一組數據交換函數——類似于對話框的DDX函數——來在用來顯示信息的控件與定義于CRecordSet類中的數據庫域之間交換信息。

Visual C++中用MFC ODBC操作Access數據庫

為了實現數據傳輸,就要把每個控件與代表數據庫域的CJHSet變量聯系起來。筆者通過使用CJHView來成員變量m_pSet來指向應用程序的CJHSet對象。選擇每個資源ID(筆者這里未修改編輯框的默認ID),并單擊Add Variable,從下拉表中直接選擇相應的成員變量名。全部設置好之后單擊OK,至此,運行程序,就可以實現簡單的與數據庫之間的數據顯示功能。

#p#

4、實現程序的添加、修改和刪除記錄的功能

在實現上述功能之前,需要按“插入->資源->DIALOG->新建”建立一個新的對話框(與圖1所示對話框類似),以建立添加、修改的對象。并為此對話框建立一個基于CDialog基礎類的新的類CAddDlg。其ID為IDD_DIALOG1。

然后在JhView.cpp中加“#include "AddDlg.h"”,并為“添加記錄(IDC_ADD)”鍵編寫程序代碼如下。其中已經作了詳細的注解。

  1. void CJhView::OnAdd()   
  2.  
  3. {  
  4.  
  5. //建立一個新的添加對話框  
  6.  
  7. CAddDlg dlg;   
  8.  
  9. if(dlg.DoModal()==IDOK)  
  10.  
  11. {  
  12.  
  13. //增加一條新的記錄  
  14.  
  15. m_pSet->AddNew();   
  16.  
  17. //把對話框中的記錄傳遞到記錄集中  
  18.  
  19. m_pSet->m_baudrate=dlg.m_br;  
  20.  
  21. m_pSet->m_type=dlg.m_ty;  
  22.  
  23. m_pSet->m_unit=dlg.m_un;  
  24.  
  25. m_pSet->m_number=dlg.m_nu;  
  26.  
  27. m_pSet->m_address=dlg.m_add;  
  28.  
  29. m_pSet->m_istart=dlg.m_is;  
  30.  
  31. m_pSet->m_iend=dlg.m_ie;  
  32.  
  33. m_pSet->m_ostart=dlg.m_os;  
  34.  
  35. m_pSet->m_oend=dlg.m_oe;  
  36.  
  37. m_pSet->Update(); //把新的記錄存在數據源里  
  38.  
  39. m_pSet->MoveLast(); //指定當前記錄為最后一條記錄  
  40.  
  41. UpdateData(false); //清空已輸入內容  
  42.  
  43. }  
  44.  

添加記錄部分,應該先讀出當前的記錄,使其顯示在添加/修改對話框中,即:

  1. dlg.m_br=m_pSet->m_baudrate;  
  2.  
  3. dlg.m_ty=m_pSet->m_type;  
  4.  
  5. dlg.m_un=m_pSet->m_unit;  
  6.  
  7. dlg.m_nu=m_pSet->m_number;  
  8.  
  9. dlg.m_add=m_pSet->m_address;  
  10.  
  11. dlg.m_is=m_pSet->m_istart;  
  12.  
  13. dlg.m_ie=m_pSet->m_iend;  
  14.  
  15. dlg.m_os=m_pSet->m_ostart;  
  16.  
  17. dlg.m_oe=m_pSet->m_oend; 

余下的與添加記錄代碼相同,除了不要定位“m_pSet->MoveLast();”而已。

刪除記錄只是需要使用Delete()成員函數刪除當前記錄之后移到下一個記錄即可。程序清單如下:

  1. void CJhView::OnDel()   
  2.  
  3. {  
  4.  
  5. try//試著刪除一條記錄  
  6.  
  7. {  
  8.  
  9. m_pSet->Delete();  
  10.  
  11. }  
  12.  
  13. catch(CDBException*error)  
  14.  
  15. {  
  16.  
  17. AfxMessageBox(error->m_strError);  
  18.  
  19. error->Delete();  
  20.  
  21. m_pSet->MoveFirst();  
  22.  
  23. UpdateData(FALSE);  
  24.  
  25. return;  
  26.  
  27. }  
  28.  
  29. //移到下一個記錄  
  30.  
  31. m_pSet->MoveNext();  
  32.  
  33. //測試是否為文件末尾,是,則使用MoveLast(),而不是使用MoveNext()  
  34.  
  35. if(m_pSet->IsEOF())  
  36.  
  37. m_pSet->MoveLast();  
  38.  
  39. UpdateData(FALSE);  
  40.  

對多個記錄集的操作與對單個記錄集的操作類似,只是增加了CRecordSet類的派生類。

總結:

MFC ODBC讓開發人員僅僅使用很少的代碼就可以完成復雜的數據庫訪問,并可以對數據庫中的內容方便的實現添加、修改、刪除等操作,從而極大地減少了軟件開發的工作量,縮短了開發周期,提高了效率。而且MFC ODBC簡單易學,能實現大部分ODBC API函數的功能,所以了解和掌握MFC ODBC技術,將會給大型數據庫應用軟件帶來清晰、快捷、方便等功能。

【編輯推薦】

  1. 開發BI系統時的需求分析研究
  2. 基于XML的數據庫總體分析(上)
  3. 基于XML的數據庫總體分析(下)
  4. 嵌入式數據庫Sqlce讀取數據過程簡介
  5. 如何不使用數據庫緩存,還達到實時更新
責任編輯:趙鵬 來源: 天極網
相關推薦

2024-04-18 09:56:16

2010-01-12 14:16:31

Visual C++語

2009-08-19 16:30:55

C#操作Access數

2009-08-19 16:40:26

C#操作Access數

2009-08-12 14:27:36

訪問MySQL數據庫C# ODBC

2011-07-13 14:53:56

VCODBCAccess

2009-07-03 14:10:59

2010-02-02 17:27:16

C++連接MySqL數

2009-08-19 16:19:01

C#操作Access數

2009-07-31 17:01:21

C#存取Access數

2010-03-04 13:47:13

Python操作Acc

2009-09-01 09:45:49

Visual C#對數

2009-08-03 14:17:18

C#連接AccessC#連接SQL Ser

2009-08-28 13:03:55

C#壓縮Access數

2011-05-26 13:42:50

MFC連接MySql數據庫

2010-05-17 10:11:11

導入Mysql

2010-01-27 15:58:35

C++數據結構

2010-05-19 15:12:32

導入MySQL

2009-12-17 13:30:49

Ruby操作Acces

2010-06-11 13:13:38

訪問MySQL數據庫
點贊
收藏

51CTO技術棧公眾號

日韩欧美不卡在线| 成人网在线免费观看| 黄色在线观看av| 91福利精品在线观看| 亚洲视频小说图片| 国产伦精品一区二区三区免费视频| 免费日韩一级片| 狠狠操综合网| 日韩精品中文字幕在线不卡尤物| 亚洲午夜无码av毛片久久| melody高清在线观看| 久88久久88久久久| 97精品在线视频| 国产精品18在线| 超碰97成人| 欧美视频完全免费看| 全黄性性激高免费视频| av片在线免费观看| a亚洲天堂av| 成人黄色免费网站在线观看| 亚洲视频免费播放| 五月精品视频| 亚洲少妇激情视频| 91精品又粗又猛又爽| 先锋影音网一区二区| 福利视频导航一区| www.日本三级| 免费黄色网页在线观看| 91老师片黄在线观看| 91亚洲精品视频| 一级黄色av片| 国产精品综合色区在线观看| 久久777国产线看观看精品| 日韩中文字幕有码| 欧美大奶一区二区| 精品日韩欧美一区二区| 自拍偷拍一区二区三区四区| 欧美magnet| 亚洲成av人片www| 91国在线高清视频| 国产在线高清视频| 国产精品亲子伦对白| 麻豆成人av| 蜜桃成人在线| 一级片黄色免费| 51一区二区三区| 色又黄又爽网站www久久| 91黄色在线看| 日本中文字幕中出在线| 17c精品麻豆一区二区免费| 日韩欧美一区二区视频在线播放| 色哟哟在线观看| 99视频在线精品| wwwxx欧美| 99精品在线视频观看| 精品亚洲国产成人av制服丝袜| 国产精品一区二区三区毛片淫片 | 午夜精品视频一区| 免费一级淫片aaa片毛片a级| 日本在线视频中文有码| 亚洲专区一二三| www.日本三级| 91九色美女在线视频| 亚洲风情在线资源站| 日韩成人三级视频| xxx.xxx欧美| 婷婷综合五月天| 欧美一级在线看| 天堂在线中文网官网| 欧美性少妇18aaaa视频| 激情综合网婷婷| 成人国产精品一区二区免费麻豆 | 国产视频在线视频| 日韩电影精品| 日韩一级片在线播放| av在线天堂网| 台湾亚洲精品一区二区tv| 亚洲人成五月天| 国产18无套直看片| 婷婷亚洲最大| 久久久久久免费精品| 免费在线观看黄网站| 天堂久久一区二区三区| 国产精品中文久久久久久久| 国产男男gay体育生网站| 国产aⅴ精品一区二区三区色成熟| 国产日韩在线一区二区三区| 日韩专区一区二区| 国产精品素人一区二区| 特大黑人娇小亚洲女mp4| 极品视频在线| 欧美日韩一区二区三区不卡| 免费欧美一级片| 亚洲精品456| 精品国产自在精品国产浪潮| 日本最新中文字幕| 日本中文一区二区三区| 91在线播放国产| 午夜性色福利视频| 中文字幕在线观看不卡视频| 国产精品自拍合集| 日韩高清不卡| 欧美精品一区二区三区视频| ass极品国模人体欣赏| 国产精品草草| 国产日韩欧美在线观看| 手机在线不卡av| 国产精品成人免费精品自在线观看| 丰满的少妇愉情hd高清果冻传媒| 电影天堂国产精品| 亚洲成人网久久久| 人与动物性xxxx| 亚洲欧美日韩专区| 精品国产美女| 亚洲精品久久久久久下一站| 国产一区二区三区视频播放| 亚洲理伦在线| 亚洲jizzjizz日本少妇| 精品无人乱码| 亚洲高清视频的网址| 国内av一区二区| 欧美禁忌电影| 91国产精品视频在线| 国产手机精品视频| 国产精品视频观看| 人妻内射一区二区在线视频 | 在线观看日韩精品| 天天插天天射天天干| 一区二区日韩欧美| 国产精品欧美日韩| 欧美视频免费一区二区三区| 欧美日韩国产精品一区二区| 欧美成人一区二区视频| 东方aⅴ免费观看久久av| 亚洲巨乳在线观看| 欧美xx视频| 日韩成人av网址| 国产极品在线播放| 粉嫩一区二区三区性色av| 中文字幕在线亚洲精品| 78精品国产综合久久香蕉| 亚洲欧美日韩天堂| 一级片中文字幕| 99国产精品视频免费观看| 人体内射精一区二区三区| 在线播放一区二区精品视频| 久久亚洲私人国产精品va| 中文字幕乱码无码人妻系列蜜桃| 久久亚洲二区三区| 蜜臀av午夜一区二区三区| 神马久久影院| 国产成人精品电影| 国产有码在线| 欧美日韩一二区| 91动漫免费网站| 久久99精品久久久久久动态图 | 日韩一级片免费观看| 亚洲一二三四久久| 色哟哟视频在线| 亚洲黄色成人| 精品一区二区日本| 欧美极度另类| 在线看日韩欧美| 一区二区美女视频| 亚洲免费av在线| av漫画在线观看| 亚洲美女网站| 欧美亚洲一级二级| 黄色精品视频网站| 久久久999精品免费| 精品国产区一区二| 午夜伦理一区二区| 中文字幕伦理片| 韩日精品视频一区| 成年在线观看视频| 色狼人综合干| 国产精品普通话| 国产高清一区二区三区视频| 亚洲成色777777在线观看影院| 黄色大片网站在线观看| 欧美激情在线观看视频免费| 欧美激情第3页| 国内在线观看一区二区三区| 精品国产乱码久久久久久88av| 欧美成人精品一区二区男人小说| 中文字幕一区日韩电影| 精品二区在线观看| 一本色道久久综合亚洲aⅴ蜜桃 | 不卡在线一区| 91一区二区三区| 成人天堂yy6080亚洲高清| 久久精品国产亚洲精品| 午夜小视频免费| 欧美日本一区二区三区| 日韩美女视频网站| 亚洲国产精品精华液2区45| 久久久精品视频国产| 亚洲综合国产| 九一免费在线观看| 国产一区二区三区电影在线观看| 91久久极品少妇xxxxⅹ软件 | 国产欧美一区二区三区久久| 直接在线观看的三级网址| 亚洲欧美国产高清va在线播| 99久久久国产精品无码网爆| 国产在线观看91一区二区三区 | 日韩免费观看一区二区| 中文字幕的久久| www.日本高清| 国产一区二区伦理| www黄色在线| 亚洲伦伦在线| 小泽玛利亚av在线| 久久香蕉国产| 欧美精品二区三区四区免费看视频| 国产精品毛片aⅴ一区二区三区| 国产成人极品视频| 黄色漫画在线免费看| 久久在线免费观看视频| 久久久久久女乱国产| 精品久久久网站| 国产丝袜在线视频| 在线视频国产一区| 中文字幕在线观看视频网站| 一区二区三区在线影院| 婷婷丁香综合网| 国产日韩欧美a| 真人bbbbbbbbb毛片| 成人丝袜高跟foot| 波多野结衣网页| 国内成+人亚洲+欧美+综合在线| 日韩欧美在线免费观看视频| 香蕉视频成人在线观看| 无码精品a∨在线观看中文| 国内一区二区三区| 老司机激情视频| 欧美激情91| 成人午夜免费剧场| 午夜电影亚洲| 男同互操gay射视频在线看| 天天综合国产| 自拍视频一区二区三区| 日韩一区三区| 一区二区三区四区欧美| 久久高清免费| 制服丝袜综合日韩欧美| 欧美h版在线| 中国一区二区三区| 天天超碰亚洲| 不卡av免费在线观看| 日本福利视频在线| 亚洲一区二区毛片| 美女福利视频在线| 丝袜a∨在线一区二区三区不卡| aa免费在线观看| 久久亚洲风情| 天天干在线影院| 久久精品国产一区二区三| 亚洲国产日韩欧美在线观看| 美国毛片一区二区| 日韩av片免费观看| 国产成人亚洲精品青草天美| 中文在线字幕观看| 91亚洲精品久久久蜜桃网站| 人妻丰满熟妇aⅴ无码| 久久网站最新地址| 毛片aaaaaa| 亚洲欧美日韩在线| 久久久久无码国产精品| 欧美日韩在线视频首页| 中文字幕 国产精品| 欧美日韩精品一区二区三区| 国产乱码久久久久| 精品对白一区国产伦| 天堂在线中文| 亚洲精品国产欧美| 成年人在线观看网站| 久久艳片www.17c.com| www.综合网.com| 国语自产精品视频在线看| 成人在线爆射| 99国内精品久久久久久久软件| 成人自拍在线| 日韩av一级大片| 欧美一区二区三区久久精品茉莉花| 国产精品一色哟哟| 久久亚洲国产精品一区二区| 天天综合成人网| 91网站最新网址| 久久人妻无码aⅴ毛片a片app | 国产做受高潮漫动| 在线观看欧美精品| 精品美女www爽爽爽视频| 日韩电影中文 亚洲精品乱码| √天堂资源地址在线官网| 欧美疯狂性受xxxxx另类| 偷拍精品精品一区二区三区| 国产综合视频在线观看| 欧美成人一区在线观看| 久久精品国产精品亚洲精品色| 99精品福利视频| 三上悠亚av一区二区三区| 成人高清在线视频| 日韩一卡二卡在线观看| 欧美日韩在线视频一区| 午夜精品久久久久久久第一页按摩| 日韩精品在线免费观看| 羞羞网站在线看| 国产精品久久av| 日韩精选在线| 国产又粗又爽又黄的视频| 久久精品亚洲一区二区| 精品久久久久久无码人妻| 久久久久国产精品厨房| www.av视频在线观看| 7799精品视频| 国产精品久久一区二区三区不卡 | 久久久久高清精品| 国产大片免费看| 欧美午夜精品免费| 午夜福利理论片在线观看| 欧美美最猛性xxxxxx| 国产原创一区| 欧美一区二区三区在线播放| 激情综合自拍| 日本中文字幕精品| 亚洲日本在线a| 亚洲图片欧美在线| 亚洲网站在线播放| 二区三区不卡| 久久精品日产第一区二区三区乱码| 欧美久久视频| 久久久久亚洲av无码麻豆| 国产精品毛片无遮挡高清| 懂色av蜜臀av粉嫩av分享吧最新章节| 亚洲精品福利资源站| 91超碰在线免费| www.久久艹| 亚洲无线视频| 国产精品久久久久久久无码| 亚洲综合色丁香婷婷六月图片| 国产成人免费看一级大黄| 久久天天躁夜夜躁狠狠躁2022| 另类一区二区| 正义之心1992免费观看全集完整版| 免费观看成人av| 免费黄色国产视频| 欧美精品高清视频| 免费a级在线播放| 91亚洲国产精品| 国内精品99| 日韩aaaaa| 欧美日韩国产丝袜美女| 欧美精品a∨在线观看不卡| 日韩美女免费观看| 欧美色就是色| 一个色综合久久| 亚洲免费观看高清完整版在线观看 | 亚洲草久电影| 中文字幕欧美视频| 亚洲电影一区二区| 亚洲色图欧美视频| 国产成人在线精品| 久久蜜桃av| 国产ts一区二区| 精品视频二区| 国产精品精品视频| 99热在线成人| 国产香蕉精品视频| 精品美女国产在线| 岛国最新视频免费在线观看| 国产免费亚洲高清| 狠狠色丁香久久综合频道| 中国黄色a级片| 欧美日韩一区二区在线观看视频| 毛片在线播放a| 国产精品v欧美精品v日韩| 先锋影音久久久| 久久精品一区二区三区四区五区| 日韩免费一区二区| 成人影院入口| 中文有码久久| eeuss鲁片一区二区三区在线观看 eeuss影院一区二区三区 | 中文字幕一区二区三区四区久久| 福利视频一二区| 欧美韩国日本不卡| 成人激情四射网| 日韩av色在线| 午夜精彩国产免费不卡不顿大片| 国产 中文 字幕 日韩 在线| 欧美亚洲一区三区| 里番在线播放| 色就是色欧美| 大陆成人av片| 中文字幕+乱码+中文| 欧美激情免费视频| 青青草国产成人a∨下载安卓| 国产免费无码一区二区| 欧洲国产伦久久久久久久| 女人天堂av在线播放|