如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第六章数据库编程VC++能够将各种关系型数据库管理系统(DBMS)与面向对象的编程方法有机地结合,使得数据库的处理和应用程序的开发都能很好地进行。提供了3种基本的数据库方式:ODBC、DAO和OLEDB。本章内容第一节数据库概述ODBC――OpenDatabaseConnectivity,开放数据库连接。是VC++提供的应用程序设计接口(API)方式之一,它可使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相关联。用户的程序可以通过调用ODBC驱动管理器中的相应驱动程序达到管理数据库的目的。还有DAO和OLEDB两种类型。二、ODBC数据库管理ODBC是一种基于SQL语言的程序设计接口,它大大简化了Windows应用程序与DBMS的连接,同时,通过MFC类库所提供的3个数据库类――CDatabase、CRecordSet、CRecordView,使得通过Windows应用程序管理海量数据库变得更方便和容易。例子:设计一个基于数据库支持的SDI/MDI应用程序框架。步骤:1、用自己熟悉的DBMS创建一个数据库;2、自定义ODBC数据源名(DSN)在“控制面板”中双击“ODBC数据源”图标打开数据源管理器;单击“添加”按钮,弹出“创建DSN”对话框;选择好用户拟添加的DSN驱动程序,如“MicrosoftAccessDriver”,单击“完成”;在新弹出的“ODBC数据源安装”对话框内,键入“数据源名”和“描述”项,单击“选取”钮,选好刚创建好的“DSN”;依次“确定”、“确定”,退出对话框,结束设置。3、使用应用程序向导创建一个“基于数据库支持”的SDI或MDI(注意:在向导的第2步设置中必须选择“无文件支持的数据库视图”或“有文件支持的数据库视图”);同时,单击“数据源”按钮,进入下层对话框。在ODBC下拉列表中选取以前创建的“DSN”,单击“确定”,进入下层;在“选择数据库表名称”对话框中,选取指定“表名”,单击“确定”;单击“完成”,返回第2步;向导的其它步骤缺省,编译运行。完成程序框架的创建。4、创建“浏览数据库记录”的对话框。通过以上步骤,MFC自动为用户创建了浏览数据库记录的工具按钮和“记录”主菜单项,但要想在视图中看到数据库的记录,则需要进一步添加对话框控件,使之与数据表的字段相关联。操作如下:切换到“ResourceView”标签页,定位并打开表单视图类的对话框资源IDD_EX_ODBC_FORM;为对话框添加相关控件(如:P209上图表);打开“类向导”对话框,切换到“成员函数”标签页,选择“用户视图类”,一一为以上“控件”添加相关联的数据成员;(注意:这里的数据变量已经自动被设置好了,用户只需要从下拉列表中选择即可);编译并运行,即可在视图中实现数据库表的浏览。第二节数据库编程实例:实现在状态栏中显示数据记录信息打开MainFrm.cpp文件,给UINTindicators[]数组增加显示“第二个信息行窗格”的标识:ID_SEPARATOR用“类向导”为“用户视图类”添加OnCommand消息映射函数,并添加“先获得状态栏对象的指针,然后调用SetPaneText函数更新第二个窗格文本信息”的代码;为“用户视图类”的OnInitialUpdate函数添加“获取记录总数”的相关代码;在用户视图.cpp文件的头部添加包含语句:#include“MainFrm.h”;将MainFrm.h中的保护型变量m_wndStatusBar变成公有型变量;编译并运行。2、编辑记录的方法CRecordset类为用户提供了在视窗应用程序中编辑数据库所有记录所需的成员函数。但在具体编程时还需要注意几个问题:成员函数中的“删除”,属于“逻辑”删除,而非真正的“物理”删除;程序中“控件”的成员变量与数据库中的对应“字段”是相互影响的。不论哪一方的数据发生改变,都会反过来影响另一方。CRecordset类几个相互作用代码:m_pSet->AddNew();//在表末尾添加一个新记录;UpdateData(TRUE);//将控件中的数据变量传给字段;m_pSet->Update();//将新记录存入数据库m_pSet->MoveLast();//定位当前指针到最后一个记录;UpdateData(FALSE);//将字段数据成员的数据传递给控件;使其在视图中显示在视图中实现数据库编辑的方法与步骤:调入前述工程;打开对话框资源IDD_EX_ODBC_FORM编辑器,新添加3个按钮:“添加记录”、“修改记录”、“删除记录”,IDC_STU_ADD(EDIT、DEL);为配合“添加”、“修改”记录,新添一个对话框资源IDD_STU_TABLE(学生表);给新