《第六章 数据库编程.ppt》由会员分享,可在线阅读,更多相关《第六章 数据库编程.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六章第六章 数据库编程数据库编程1 1n nVC能够将各种关系型数据库管理系统(DBMS)与面向对象的编程方法有机地结合,使得数据库的处理和应用程序的开发都能很好地进行。n n提供了3种基本的数据库方式:ODBC、DAO和OLE DB。2 2本章内容n n数据库概述n n数据库编程n n添加数据库关联控件(ActiveX)3 3第一节 数据库概述一、几个重要概念一、几个重要概念n n数据库数据库数据库数据库指以一定的组织形式存放于计算机内指以一定的组织形式存放于计算机内指以一定的组织形式存放于计算机内指以一定的组织形式存放于计算机内的相关数据的集合。的相关数据的集合。的相关数据的集合。的相关
2、数据的集合。n nDBMSDBMS数据库管理系统,是一种能对数据库数据库管理系统,是一种能对数据库数据库管理系统,是一种能对数据库数据库管理系统,是一种能对数据库进行各种操作和有效管理的软件系统。进行各种操作和有效管理的软件系统。进行各种操作和有效管理的软件系统。进行各种操作和有效管理的软件系统。常见的如:常见的如:常见的如:常见的如:Microsoft AccessMicrosoft Access、Microsoft Microsoft SQL ServerSQL Server、Sybase SQL ServerSybase SQL Server、Microsoft Visual FoxPr
3、oMicrosoft Visual FoxPro等。等。等。等。4 4n nODBCOpenODBCOpen Database Connectivity Database Connectivity,开放数,开放数,开放数,开放数据库连接。是据库连接。是据库连接。是据库连接。是VC+VC+提供的应用程序设计接口提供的应用程序设计接口提供的应用程序设计接口提供的应用程序设计接口(API)(API)方式方式方式方式之一,它可使得任何一个数据库都可以通过之一,它可使得任何一个数据库都可以通过之一,它可使得任何一个数据库都可以通过之一,它可使得任何一个数据库都可以通过ODBCODBC驱动器驱动器驱动器驱
4、动器与指定的与指定的与指定的与指定的DBMSDBMS相关联。用户的程序可以通过调用相关联。用户的程序可以通过调用相关联。用户的程序可以通过调用相关联。用户的程序可以通过调用ODBCODBC驱动管理器中的相应驱动程序达到管理数据库的目驱动管理器中的相应驱动程序达到管理数据库的目驱动管理器中的相应驱动程序达到管理数据库的目驱动管理器中的相应驱动程序达到管理数据库的目的。的。的。的。n n还有还有还有还有DAODAO和和和和OLE DBOLE DB两种类型。两种类型。两种类型。两种类型。5 5二、二、ODBC数据库管理数据库管理n nODBCODBC是一种基于是一种基于是一种基于是一种基于SQLSQ
5、L语言的程序设计接口,它语言的程序设计接口,它语言的程序设计接口,它语言的程序设计接口,它大大简化了大大简化了大大简化了大大简化了WindowsWindows应用程序与应用程序与应用程序与应用程序与DBMSDBMS的连接,的连接,的连接,的连接,同时,通过同时,通过同时,通过同时,通过MFCMFC类库所提供的类库所提供的类库所提供的类库所提供的3 3个数据库类个数据库类个数据库类个数据库类CDatabaseCDatabase、CRecordSetCRecordSet、CRecordViewCRecordView,使得通过,使得通过,使得通过,使得通过WindowsWindows应用程序应用程序
6、应用程序应用程序管理海量数据库变得更方便和容易。管理海量数据库变得更方便和容易。管理海量数据库变得更方便和容易。管理海量数据库变得更方便和容易。6 6例子:设计一个基于数据库支持的例子:设计一个基于数据库支持的例子:设计一个基于数据库支持的例子:设计一个基于数据库支持的SDI/MDISDI/MDI应用应用应用应用程序框架。步骤:程序框架。步骤:程序框架。步骤:程序框架。步骤:1 1、用自己熟悉的、用自己熟悉的、用自己熟悉的、用自己熟悉的DBMSDBMS创建一个数据库;创建一个数据库;创建一个数据库;创建一个数据库;2 2、自定义、自定义、自定义、自定义ODBCODBC数据源名数据源名数据源名数
7、据源名(DSN)(DSN)在在在在“控制面板控制面板控制面板控制面板”中双击中双击中双击中双击“ODBCODBC数据源数据源数据源数据源”图标打开数据图标打开数据图标打开数据图标打开数据源管理器;源管理器;源管理器;源管理器;单击单击单击单击“添加添加添加添加”按钮,弹出按钮,弹出按钮,弹出按钮,弹出“创建创建创建创建DSN”DSN”对话框;对话框;对话框;对话框;选择好用户拟添加的选择好用户拟添加的选择好用户拟添加的选择好用户拟添加的DSNDSN驱动程序,如驱动程序,如驱动程序,如驱动程序,如“Microsoft Microsoft Access Driver”Access Driver”,
8、单击,单击,单击,单击“完成完成完成完成”;在新弹出的在新弹出的在新弹出的在新弹出的“ODBCODBC数据源安装数据源安装数据源安装数据源安装”对话框内,键入对话框内,键入对话框内,键入对话框内,键入“数数数数据源名据源名据源名据源名”和和和和“描述描述描述描述”项,单击项,单击项,单击项,单击“选取选取选取选取”钮,选好刚创钮,选好刚创钮,选好刚创钮,选好刚创建好的建好的建好的建好的“DSN”DSN”;依次依次依次依次“确定确定确定确定”、“确定确定确定确定”,退出对话框,结束设置。,退出对话框,结束设置。,退出对话框,结束设置。,退出对话框,结束设置。7 73、使用应用程序向导创建一个使用
9、应用程序向导创建一个使用应用程序向导创建一个使用应用程序向导创建一个“基于数据库支持基于数据库支持基于数据库支持基于数据库支持”的的的的SDISDI或或或或MDI(MDI(注意:在向导的第注意:在向导的第注意:在向导的第注意:在向导的第2 2步设置中步设置中步设置中步设置中必须选择必须选择必须选择必须选择“无文件支持的数据库视图无文件支持的数据库视图无文件支持的数据库视图无文件支持的数据库视图”或或或或“有有有有文件支持的数据库视图文件支持的数据库视图文件支持的数据库视图文件支持的数据库视图”);同时,单击;同时,单击;同时,单击;同时,单击“数据数据数据数据源源源源”按钮,进入下层对话框。按
10、钮,进入下层对话框。按钮,进入下层对话框。按钮,进入下层对话框。在在在在ODBCODBC下拉列表中选取以前创建的下拉列表中选取以前创建的下拉列表中选取以前创建的下拉列表中选取以前创建的“DSN”DSN”,单击,单击,单击,单击“确定确定确定确定”,进入下层;,进入下层;,进入下层;,进入下层;在在在在“选择数据库表名称选择数据库表名称选择数据库表名称选择数据库表名称”对话框中,选取指定对话框中,选取指定对话框中,选取指定对话框中,选取指定“表名表名表名表名”,单击,单击,单击,单击“确定确定确定确定”;单击单击单击单击“完成完成完成完成”,返回第返回第返回第返回第2 2步;步;步;步;向导的其
11、它步骤缺省,编译运行。完成程序框架的创向导的其它步骤缺省,编译运行。完成程序框架的创向导的其它步骤缺省,编译运行。完成程序框架的创向导的其它步骤缺省,编译运行。完成程序框架的创建。建。建。建。8 84 4、创建、创建、创建、创建“浏览数据库记录浏览数据库记录浏览数据库记录浏览数据库记录”的对话框。的对话框。的对话框。的对话框。n n通过以上步骤,通过以上步骤,通过以上步骤,通过以上步骤,MFCMFC自动为用户创建了浏览数据库记录自动为用户创建了浏览数据库记录自动为用户创建了浏览数据库记录自动为用户创建了浏览数据库记录的工具按钮和的工具按钮和的工具按钮和的工具按钮和“记录记录记录记录”主菜单项,
12、但要想在视图中看到主菜单项,但要想在视图中看到主菜单项,但要想在视图中看到主菜单项,但要想在视图中看到数据库的记录,则需要进一步添加对话框控件,使之与数据库的记录,则需要进一步添加对话框控件,使之与数据库的记录,则需要进一步添加对话框控件,使之与数据库的记录,则需要进一步添加对话框控件,使之与数据表的字段相关联。操作如下:数据表的字段相关联。操作如下:数据表的字段相关联。操作如下:数据表的字段相关联。操作如下:切换到切换到切换到切换到“ResourceViewResourceView”标签页,定位并打开表单视标签页,定位并打开表单视标签页,定位并打开表单视标签页,定位并打开表单视图类的对话框资
13、源图类的对话框资源图类的对话框资源图类的对话框资源IDD_EX_ODBC_FORMIDD_EX_ODBC_FORM;为对话框添加相关控件为对话框添加相关控件为对话框添加相关控件为对话框添加相关控件(如:如:如:如:P209P209上图表上图表上图表上图表);打开打开打开打开“类向导类向导类向导类向导”对话框,切换到对话框,切换到对话框,切换到对话框,切换到“成员函数成员函数成员函数成员函数”标签页,标签页,标签页,标签页,选择选择选择选择“用户视图类用户视图类用户视图类用户视图类”,一一为以上,一一为以上,一一为以上,一一为以上“控件控件控件控件”添加相关添加相关添加相关添加相关联的数据成员;
14、联的数据成员;联的数据成员;联的数据成员;(注意:这里的数据变量已经自动被注意:这里的数据变量已经自动被注意:这里的数据变量已经自动被注意:这里的数据变量已经自动被设置好了,用户只需要从下拉列表中选择即可设置好了,用户只需要从下拉列表中选择即可设置好了,用户只需要从下拉列表中选择即可设置好了,用户只需要从下拉列表中选择即可);编译并运行,即可在视图中实现数据库表的浏览。编译并运行,即可在视图中实现数据库表的浏览。编译并运行,即可在视图中实现数据库表的浏览。编译并运行,即可在视图中实现数据库表的浏览。9 9第二节 数据库编程 n n包含包含“显示数据库记录总数、当前记录号显示数据库记录总数、当前
15、记录号”、“编辑记录编辑记录”、“处理多个库表处理多个库表”等等内容。内容。1、显示记录总数、当前记录号、显示记录总数、当前记录号n n在状态栏显示在状态栏显示“当前库表有当前库表有xxxx条记录条记录”、“当前当前为第为第xxxx条记录条记录”的信息,可通过访问的信息,可通过访问CRecordsetCRecordset类的两个成员函数:类的两个成员函数:GetRecordCountGetRecordCount和和GetStatusGetStatus来实现。来实现。1010实例:实现在状态栏中显示数据记录信息实例:实现在状态栏中显示数据记录信息实例:实现在状态栏中显示数据记录信息实例:实现在状
16、态栏中显示数据记录信息n n打开打开打开打开MainFrm.cppMainFrm.cpp文件,给文件,给文件,给文件,给UINT indicatorsUINT indicators数组增加显示数组增加显示数组增加显示数组增加显示“第二个信息行窗格第二个信息行窗格第二个信息行窗格第二个信息行窗格”的标识:的标识:的标识:的标识:ID_SEPARATORID_SEPARATORn n用用用用“类向导类向导类向导类向导”为为为为“用户视图类用户视图类用户视图类用户视图类”添加添加添加添加OnCommandOnCommand消息映射函数,消息映射函数,消息映射函数,消息映射函数,并添加并添加并添加并添
17、加“先获得状态栏对象的指针,然后调用先获得状态栏对象的指针,然后调用先获得状态栏对象的指针,然后调用先获得状态栏对象的指针,然后调用SetPaneTextSetPaneText函数更函数更函数更函数更新第二个窗格文本信息新第二个窗格文本信息新第二个窗格文本信息新第二个窗格文本信息”的代码;的代码;的代码;的代码;n n为为为为“用户视图类用户视图类用户视图类用户视图类”的的的的OnInitialUpdateOnInitialUpdate函数添加函数添加函数添加函数添加“获取记录总数获取记录总数获取记录总数获取记录总数”的相关代码;的相关代码;的相关代码;的相关代码;n n在用户视图在用户视图在
18、用户视图在用户视图.cppcpp文件的头部添加包含语句:文件的头部添加包含语句:文件的头部添加包含语句:文件的头部添加包含语句:#include#include“MainFrm.hMainFrm.h”;”;n n将将将将MainFrm.hMainFrm.h中的保护型变量中的保护型变量中的保护型变量中的保护型变量m_wndStatusBarm_wndStatusBar变成公有型变变成公有型变变成公有型变变成公有型变量;量;量;量;n n编译并运行。编译并运行。编译并运行。编译并运行。11112、编辑记录的方法、编辑记录的方法CRecordsetCRecordset类为用户提供了在视窗应用程序中编
19、类为用户提供了在视窗应用程序中编类为用户提供了在视窗应用程序中编类为用户提供了在视窗应用程序中编辑数据库所有记录所需的成员函数。但在具体编辑数据库所有记录所需的成员函数。但在具体编辑数据库所有记录所需的成员函数。但在具体编辑数据库所有记录所需的成员函数。但在具体编程时还需要注意几个问题:程时还需要注意几个问题:程时还需要注意几个问题:程时还需要注意几个问题:n n成员函数中的成员函数中的成员函数中的成员函数中的“删除删除删除删除”,属于,属于,属于,属于“逻辑逻辑逻辑逻辑”删除,而删除,而删除,而删除,而非真正的非真正的非真正的非真正的“物理物理物理物理”删除;删除;删除;删除;n n程序中程
20、序中程序中程序中“控件控件控件控件”的成员变量与数据库中的对应的成员变量与数据库中的对应的成员变量与数据库中的对应的成员变量与数据库中的对应“字段字段字段字段”是相互影响的。不论哪一方的数据发生改是相互影响的。不论哪一方的数据发生改是相互影响的。不论哪一方的数据发生改是相互影响的。不论哪一方的数据发生改变,都会反过来影响另一方。变,都会反过来影响另一方。变,都会反过来影响另一方。变,都会反过来影响另一方。1212CRecordsetCRecordset类几个相互作用代码:类几个相互作用代码:类几个相互作用代码:类几个相互作用代码:n nm_pSetm_pSet-AddNewAddNew();(
21、);/在表末尾添加一个新记录;在表末尾添加一个新记录;在表末尾添加一个新记录;在表末尾添加一个新记录;n nUpdateData(TRUEUpdateData(TRUE););/将控件中的数据变量传给字段;将控件中的数据变量传给字段;将控件中的数据变量传给字段;将控件中的数据变量传给字段;n nm_pSetm_pSet-Update();-Update();/将新记录存入数据库将新记录存入数据库将新记录存入数据库将新记录存入数据库n nm_pSetm_pSet-MoveLastMoveLast();();/定位当前指针到最后一个记录;定位当前指针到最后一个记录;定位当前指针到最后一个记录;定位
22、当前指针到最后一个记录;n nUpdateData(FALSEUpdateData(FALSE);/将字段数据成员的数据传递给控件;使其将字段数据成员的数据传递给控件;使其将字段数据成员的数据传递给控件;使其将字段数据成员的数据传递给控件;使其在视图中显示在视图中显示在视图中显示在视图中显示1313在视图中实现数据库编辑的方法与步骤:在视图中实现数据库编辑的方法与步骤:n n调入前述工程;调入前述工程;调入前述工程;调入前述工程;n n打开对话框资源打开对话框资源打开对话框资源打开对话框资源IDD_EX_ODBC_FORMIDD_EX_ODBC_FORM编辑器,新添编辑器,新添编辑器,新添编辑
23、器,新添加加加加3 3个按钮:个按钮:个按钮:个按钮:“添加记录添加记录添加记录添加记录”、“修改记录修改记录修改记录修改记录”、“删除记录删除记录删除记录删除记录”,IDC_STU_ADD(EDITIDC_STU_ADD(EDIT、DEL)DEL);n n为配合为配合为配合为配合“添加添加添加添加”、“修改修改修改修改”记录,新添一个对话框资源记录,新添一个对话框资源记录,新添一个对话框资源记录,新添一个对话框资源IDD_STU_TABLE(IDD_STU_TABLE(学生表学生表学生表学生表);n n给新对话框复制主体控件;为对话框创建一个新类给新对话框复制主体控件;为对话框创建一个新类给
24、新对话框复制主体控件;为对话框创建一个新类给新对话框复制主体控件;为对话框创建一个新类CStuDlgCStuDlg;n n手工为手工为手工为手工为“编辑框编辑框编辑框编辑框”控件添加数据成员变量控件添加数据成员变量控件添加数据成员变量控件添加数据成员变量1414n n在在在在“消息映射消息映射消息映射消息映射”标签页内为标签页内为标签页内为标签页内为CStuDlgCStuDlg中的中的中的中的“确定确定确定确定”(IDOK)(IDOK)按钮增加按钮增加按钮增加按钮增加“左击左击左击左击”消息映射,并添加实现代码:消息映射,并添加实现代码:消息映射,并添加实现代码:消息映射,并添加实现代码:Up
25、dateData(TRUEUpdateData(TRUE););/将控件中的数据变量传给字段;将控件中的数据变量传给字段;将控件中的数据变量传给字段;将控件中的数据变量传给字段;n n分别为分别为分别为分别为CEx_ODBCViewCEx_ODBCView类的类的类的类的3 3个新按钮增加消息映射,个新按钮增加消息映射,个新按钮增加消息映射,个新按钮增加消息映射,并依次添加用户代码;并依次添加用户代码;并依次添加用户代码;并依次添加用户代码;见文件:编辑数据库记录的见文件:编辑数据库记录的见文件:编辑数据库记录的见文件:编辑数据库记录的代码代码代码代码.txt.txtn n在当前源代码文件头部
26、增加在当前源代码文件头部增加在当前源代码文件头部增加在当前源代码文件头部增加“包含语句包含语句包含语句包含语句”,将新类头文,将新类头文,将新类头文,将新类头文件纳入;件纳入;件纳入;件纳入;n n编译并运行。编译并运行。编译并运行。编译并运行。15153、处理多个库表、处理多个库表为了显示一个为了显示一个为了显示一个为了显示一个DBSDBS中多个库表之间的关系及显示相中多个库表之间的关系及显示相中多个库表之间的关系及显示相中多个库表之间的关系及显示相关信息,有时需要在一个视图对话框中同时显示关信息,有时需要在一个视图对话框中同时显示关信息,有时需要在一个视图对话框中同时显示关信息,有时需要在
27、一个视图对话框中同时显示多个表对象。多个表对象。多个表对象。多个表对象。例子:用例子:用例子:用例子:用MFCMFC自动处理多个表。步骤如下:自动处理多个表。步骤如下:自动处理多个表。步骤如下:自动处理多个表。步骤如下:n n打开打开打开打开“MFCMFC类向导类向导类向导类向导”,单击,单击,单击,单击“添加新类添加新类添加新类添加新类”按钮,在下拉列按钮,在下拉列按钮,在下拉列按钮,在下拉列表中选择表中选择表中选择表中选择“新建新建新建新建”;n n在在在在“新类新类新类新类”对话框中为对话框中为对话框中为对话框中为CRecordSetCRecordSet派生一个新类:派生一个新类:派生一
28、个新类:派生一个新类:CCodeSetCCodeSet;单击单击单击单击“确定确定确定确定”,弹出一个新对话框;,弹出一个新对话框;,弹出一个新对话框;,弹出一个新对话框;n n在在在在“数据库操作数据库操作数据库操作数据库操作”对话框中定位好拟显示的新库表(如:对话框中定位好拟显示的新库表(如:对话框中定位好拟显示的新库表(如:对话框中定位好拟显示的新库表(如:zyzy);“;“确定确定确定确定”返回;返回;返回;返回;n n“确定确定确定确定”退出退出退出退出“类向导类向导类向导类向导”;1616n n打开对话框资源打开对话框资源打开对话框资源打开对话框资源IDD_STU_TABLEIDD
29、_STU_TABLE编辑器,为该对话编辑器,为该对话编辑器,为该对话编辑器,为该对话框增加新的控件框增加新的控件框增加新的控件框增加新的控件(外观如外观如外观如外观如P221P221图示右侧区域;控件属性图示右侧区域;控件属性图示右侧区域;控件属性图示右侧区域;控件属性如如如如P219P219上表上表上表上表);n n打开类向导,为打开类向导,为打开类向导,为打开类向导,为CStuDlgCStuDlg增加新控件的成员变量增加新控件的成员变量增加新控件的成员变量增加新控件的成员变量(如如如如P219P219下表下表下表下表);n n继续为继续为继续为继续为CStuDlgCStuDlg增加增加增加
30、增加WM_INITDIALOGWM_INITDIALOG消息映射,消息映射,消息映射,消息映射,并添加对话框初始化代码并添加对话框初始化代码并添加对话框初始化代码并添加对话框初始化代码见文件:处理多个表的数见文件:处理多个表的数见文件:处理多个表的数见文件:处理多个表的数据库代码据库代码据库代码据库代码.Txt;.Txt;n n为控件为控件为控件为控件IDC_LIST1IDC_LIST1增加增加增加增加LBN_SELCHANGELBN_SELCHANGE消息映消息映消息映消息映射,并添加函数代码;射,并添加函数代码;射,并添加函数代码;射,并添加函数代码;n n在当前文件开头增加包含语句,将新
31、类在当前文件开头增加包含语句,将新类在当前文件开头增加包含语句,将新类在当前文件开头增加包含语句,将新类CodeSet.hCodeSet.h纳纳纳纳入;入;入;入;n n编译并运行。编译并运行。编译并运行。编译并运行。1717第三讲 添加数据库关联控件添加数据库关联控件(ActiveX)介绍介绍介绍介绍3 3个与显示数据库表有关的可视化个与显示数据库表有关的可视化个与显示数据库表有关的可视化个与显示数据库表有关的可视化ActiveXActiveX控控控控件:件:件:件:MSFlexGridMSFlexGrid、RemoteDataRemoteData、DBGridDBGrid。1 1、MS M
32、S FlexGridFlexGrid控件控件控件控件n n可以直观地显示数据库表网格,只要控件设置得可以直观地显示数据库表网格,只要控件设置得可以直观地显示数据库表网格,只要控件设置得可以直观地显示数据库表网格,只要控件设置得足够大,则库表的所有记录都可同时显示出来。足够大,则库表的所有记录都可同时显示出来。足够大,则库表的所有记录都可同时显示出来。足够大,则库表的所有记录都可同时显示出来。n n将该控件纳入到当前项目中,需要将该控件纳入到当前项目中,需要4 4步骤:步骤:18181 1)向项目添加一个)向项目添加一个)向项目添加一个)向项目添加一个“控件类控件类控件类控件类”;具体操作如下:
33、;具体操作如下:;具体操作如下:;具体操作如下:选择菜单:选择菜单:选择菜单:选择菜单:project/add project project/add project/Components and Controls/Components and Controls,弹出,弹出,弹出,弹出“组件和组件和组件和组件和控件容器控件容器控件容器控件容器”对话框;对话框;对话框;对话框;双击文件夹列表中的双击文件夹列表中的双击文件夹列表中的双击文件夹列表中的“已注册的已注册的已注册的已注册的ActiveXActiveX控件控件控件控件”项,项,项,项,列出列出列出列出WindowsWindows操作平台所
34、有的控件类型列表;操作平台所有的控件类型列表;操作平台所有的控件类型列表;操作平台所有的控件类型列表;找到并双击找到并双击找到并双击找到并双击“MS MS FlexGridFlexGrid Control”Control”项,弹出项,弹出项,弹出项,弹出“确确确确认类认类认类认类(Confirm Classes)”(Confirm Classes)”对话框;对话框;对话框;对话框;单击单击单击单击“确定确定确定确定”钮,将列表中的钮,将列表中的钮,将列表中的钮,将列表中的4 4个类加入到当前项目个类加入到当前项目个类加入到当前项目个类加入到当前项目资源编辑器的资源编辑器的资源编辑器的资源编辑器
35、的“控件工具栏控件工具栏控件工具栏控件工具栏”中。如中。如中。如中。如P222P222图图图图7.237.23所示;所示;所示;所示;n n“关闭关闭”上述主体对话框。结束添加过程。上述主体对话框。结束添加过程。19192 2)向项目的)向项目的)向项目的)向项目的IDD_EX_ODBC_FORMIDD_EX_ODBC_FORM资源添加资源添加资源添加资源添加MSFlexGridMSFlexGrid控件,注意:在其属性对话框中控件,注意:在其属性对话框中控件,注意:在其属性对话框中控件,注意:在其属性对话框中可以为网格控件设置可以为网格控件设置可以为网格控件设置可以为网格控件设置“颜色颜色颜色
36、颜色”、“图片图片图片图片”等。等。等。等。3 3)向项目添加控件代码:)向项目添加控件代码:)向项目添加控件代码:)向项目添加控件代码:打开打开打开打开“类向导类向导类向导类向导”,为新增控件添加一个,为新增控件添加一个,为新增控件添加一个,为新增控件添加一个“数据成员数据成员数据成员数据成员”(m_MSFGridm_MSFGrid);为为为为“用户视图类用户视图类用户视图类用户视图类”的的的的OnInitialUpdateOnInitialUpdate函数体添加函数体添加函数体添加函数体添加控件响应代码,目的在于使类对象控件响应代码,目的在于使类对象控件响应代码,目的在于使类对象控件响应代
37、码,目的在于使类对象m_pSetm_pSet所关联所关联所关联所关联的数据库表记录内容在控件中显示出来。的数据库表记录内容在控件中显示出来。的数据库表记录内容在控件中显示出来。的数据库表记录内容在控件中显示出来。代码名:数据库代码名:数据库代码名:数据库代码名:数据库ActiveXActiveX控件控件控件控件(1).txt(1).txt4 4)编译并运行。)编译并运行。20202 2、添加、添加、添加、添加RemoteDataRemoteData、DBGridDBGrid控件的方法控件的方法控件的方法控件的方法与前述控件不同,这两个控件一般是配合成双使用与前述控件不同,这两个控件一般是配合成
38、双使用与前述控件不同,这两个控件一般是配合成双使用与前述控件不同,这两个控件一般是配合成双使用的。其最大好处在于不需要添加任何实现代码,的。其最大好处在于不需要添加任何实现代码,的。其最大好处在于不需要添加任何实现代码,的。其最大好处在于不需要添加任何实现代码,即可使数据库表记录显示于控件当中。即可使数据库表记录显示于控件当中。即可使数据库表记录显示于控件当中。即可使数据库表记录显示于控件当中。操作分操作分操作分操作分3 3大步骤:大步骤:大步骤:大步骤:1 1)先给当前项目的某一对话框资源添加)先给当前项目的某一对话框资源添加)先给当前项目的某一对话框资源添加)先给当前项目的某一对话框资源添
39、加RemoteDataRemoteData控件;控件;控件;控件;选定对话框资源,右击弹出快捷菜单,从中选择选定对话框资源,右击弹出快捷菜单,从中选择选定对话框资源,右击弹出快捷菜单,从中选择选定对话框资源,右击弹出快捷菜单,从中选择“Insert Active Control”Insert Active Control”;再从列表中找到;再从列表中找到;再从列表中找到;再从列表中找到“MS MS RemoteDataRemoteData控件控件控件控件”,“OK”OK”确定;确定;确定;确定;n n设置新控件几个重要设置新控件几个重要“属性属性”。如。如“数据源名数据源名”项应选择项应选择“
40、My database for VC+”My database for VC+”;“SQL”SQL”文本区键入文本区键入SQLSQL操作语句:操作语句:“SELECT*FROM SELECT*FROM 表表1”1”;“ALLALL标签页标签页”中的中的“CursorDriverCursorDriver”项设置为项设置为“1-ODBC cursor”1-ODBC cursor”。21212 2)添加并设置)添加并设置)添加并设置)添加并设置DBGridDBGrid控件控件控件控件 用同样方法在同一对话框内添加用同样方法在同一对话框内添加用同样方法在同一对话框内添加用同样方法在同一对话框内添加DBGridDBGrid新控件;新控件;新控件;新控件;属性设置项:必须将属性设置项:必须将属性设置项:必须将属性设置项:必须将“数据源数据源数据源数据源(DataSourceDataSource)”)”设为设为设为设为RemoteDataRemoteData控件标识号控件标识号控件标识号控件标识号“IDC_REMOTEDATACTL1”IDC_REMOTEDATACTL1”,才可实现两个控件的,才可实现两个控件的,才可实现两个控件的,才可实现两个控件的“绑定绑定绑定绑定”关系。关系。关系。关系。3 3)编译并运行。)编译并运行。2222