欢迎投稿

今日深度:

Visual C++中用MFC ODBC操作Access数据库(1)

Visual C++中用MFC ODBC操作Access数据库(1)


本实例是某项目中的一部分,目的是实现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,至此,运行程序,就可以实现简单的与数据库之间的数据显示功能。


www.htsjk.Com true http://www.htsjk.com/shujukukf/17014.html NewsArticle Visual C++中用MFC ODBC操作Access数据库(1) 本实例是某项目中的一部分,目的是实现 MFC ODBC 数据库与 Access 数据表格之间的相互操作。包括用 Visual C++ 中的MFC ODBC技术实现对Access数据表格的内...
评论暂时关闭