设计基于ODBC的数据库管理系统【荐】.doc
文本预览下载声明
用VC++设计基于ODBC的数据库管理系统(4) 二、编程步骤 1、启动Visual C++6.0,生成一个单文档视图结构的应用程序,将该程序命名为Enroll。在MFC AppWizard的第一步选择Single document,在MFC AppWizard的第二步选择Database view without file support,然后点击Data Source...按钮,在Database Options对话框中的ODBC组合框中选择Student Registration数据源,则会打开一个Select Database Table对话框,在该对话框中选择数据库中的Section表按OK按钮退出,在MFC AppWizard的第六步中,将类CEnrollSet改名为CSectionSet,将类CEnrollView改名为CSectionForm; 2、接下来的任务设计应用程序的界面(具体设置请参见原代码部分),并用ClassWizard把表单中的控件与记录集的域数据成员连接起来,以实现控件与当前记录的DDX数据交换。请读者按如下步骤操作:进入ClassWizard,选择Member Variables页并且选择CSectionForm类。在变量列表中双击IDC_CAPACITY项,则会显示Add Member Variable对话框。注意该对话框的Member variable name栏显示的是一个组合框,而不是平常看到的编辑框。在组合框的列表中选择m_pSet-m_Capacity并按OK按钮确认。其它控件依此类推。 3、对于组合框控件IDC_COURSELIST项,除在Add Member Variable对话框的组合框中选择m_pSet-m_CourseID外,还要再次双击IDC_COURSELIST,并为CSectionForm类加入一个名为m_ctlCourseList的CComboBox类成员。 4、使用Class Wizard为IDC_COURSELIST组合框加入CBN_SELENDOK通知消息处理函数,函数名为OnSelendokCourselist。该函数负责响应用户在组合框中选择的变化。 5、接着使用ClassWizard为数据库中的Course表创建一个名为CCourseSet的记录集类; 6、在CEnrollDoc类的定义中,紧接着m_sectionSet成员,加入下面一行:CCourseSet m_courseSet。这样CEnrollDoc就包含了两个记录集。由于CEnrollDoc类用到了CCourseSet类,所以要在所有含有#include EnrolDoc.h语句的CPP文件中,在#include EnrolDoc.h语句的前面加上#include CourseSet.h语句。 7、在CSectionSet类的定义中,紧接着域数据成员,在//}}AFX_FIELD注释外加入下面一行CString m_strCourseIDParam; 8、添加代码,编译运行程序。 三、程序代码
///////////// SectSet.h : interface of the CSectionSet classclass CSectionSet : public CRecordset{ public: CSectionSet(CDatabase* pDatabase = NULL); DECLARE_DYNAMIC(CSectionSet) // Field/Param Data //{{AFX_FIELD(CSectionSet, CRecordset) CString m_CourseID; CString m_SectionNo; CString m_InstructorID; CString m_RoomNo; CString m_Schedule; int m_Capacity; //}}AFX_FIELD CString m_strCourseIDParam; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSectionSet) public: virtual CString GetDefaultConnect(); // Default connection string virtual CString GetDefaultSQL(); // default SQL for Recordset
显示全部