




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章数据库编程VC能够将各种关系型数据库管理系统(DBMS)与面向对象的编程方法有机地结合,使得数据库的处理和应用程序的开发都能很好地进行。它为用户提供了3种基本的数据库方式,即:ODBC、DAO和OLE DB。本章仅介绍MFC的ODBC编程方法与技巧。第一讲 数据库概述一、几个重要概念数据库指以一定的组织形式存放于计算机内的相关数据的集合。DBMS数据库管理系统,是一种能对数据库进行各种操作和有效管理的软件系统,常见的如:Microsoft Access、Microsoft SQL Server、Sybase SQL Server、Microsoft Visual Foxpro等等。SQL结构化查询语言,为大多数数据库管理系统实现复合管理提供了一个公用的接口。其语句有两种类型:一种称为“数据定义语句(DDL)”,可用于创建表和索引等;另一类为“数据操作语句(DML)”,用于读取数据、更新数据和执行其它常规操作。ODBCOpen Database Connectivity,开放数据库连接。是VC+提供的应用程序设计接口(API)方式之一,它可使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相关联。用户的程序可以通过调用ODBC驱动管理器中的相应驱动程序达到管理数据库的目的。除此之外,VC提供的其余两种接口方式(DAO、OLE DB)请参阅P204页7.2节上面的有关内容。二、ODBC数据库管理ODBC是一种基于SQL语言的程序设计接口,它大大简化了Windows应用程序与DBMS的连接,同时,通过MFC类库所提供的3个数据库类CDatabase、CRecordSet、CRecordView,使得通过Windows应用程序管理海量数据库变得更方便和容易。例子:设计一个基于数据库支持的SDI/MDI应用程序框架。一般步骤:1、 用自己熟悉的DBMS创建一个数据库;2、 自定义ODBC数据源名(DSN)(1) 在“控制面板”中双击“ODBC数据源”图标打开数据源管理器;(2) 单击“添加”按钮,弹出“创建DSN”对话框;(3) 选择好用户拟添加的DSN驱动程序,如“Microsoft Access Driver”,单击“完成”;(4) 在新弹出的“ODBC数据源安装”对话框内,键入“数据源名”和“描述”项,单击“选取”钮,选好刚创建好的“DSN”;(5) 依次“确定”、“确定”,退出对话框,结束设置。3、 使用应用程序向导创建一个“基于数据库支持”的SDI或MDI(注意:在向导的第2步设置中必须选择“无文件支持的数据库视图”或“有文件支持的数据库视图”);同时,单击“数据源”按钮,进入下层对话框。(1) 在ODBC下拉列表中选取以前创建的“DSN”,单击“确定”,进入下层;(2) 在“选择数据库表名称”对话框中,选取指定“表名”,单击“确定”;(3) 单击“完成”,返回第2步;(4) 向导的其它步骤缺省,编译运行。完成程序框架的创建。4、 创建“浏览数据库记录”的对话框。通过以上步骤,MFC自动为用户创建了浏览数据库记录的工具按钮和“记录”主菜单项,但要想在视图中看到数据库的记录,则需要进一步添加对话框控件,使之与数据表的字段相关联。操作如下:(1) 切换到“ResourceView”标签页,定位并打开表单视图类的对话框资源IDD_EX_ODBC_FORM;(2) 为对话框添加相关控件(如:P209上图表);(3) 打开“类向导”对话框,切换到“成员函数”标签页,选择“用户视图类”,一一为以上“控件”添加相关联的数据成员;(注意:这里的数据变量已经自动被设置好了,用户只需要从下拉列表中选择即可);(4) 编译并运行,即可在视图中实现数据库表的浏览。第二讲 数据库编程包含“显示记录总数、当前记录号”、“编辑记录”、“处理多个库表”三个部分。1、显示记录总数、当前记录号从前面所创建的程序中,可发现用户虽然可以通过视图对话框实现数据库表的记录浏览,但状态行并未能显示出“当前库表有多少条记录”以及“当前记录的索引号”等信息,这一功能的实现,可通过分别访问CRecordset类的两个成员函数GetRecordCount和GetStatus来达到。下面的步骤,就是要实现在状态栏中显示上述信息。(1) 打开MainFrm.cpp文件,给UINT indicators数组增加显示“第二个信息行窗格”的标识:ID_SEPARATOR,;(2) 用“类向导”为“用户视图类”添加OnCommand消息映射函数,并添加“先获得状态栏对象的指针,然后调用SetPaneText函数更新第二个窗格文本信息”的代码;(3) 为“用户视图类”的OnInitialUpdate函数添加“获取记录总数”的相关代码;(4) 在用户视图.cpp文件的头部添加包含语句:#include “MainFrm.h”;(5) 将MainFrm.h中的保护型变量m_wndStatusBar变成公有型变量;(6) 编译并运行。2、编辑记录的方法前面所提到的CRecordset类为用户提供了在视窗应用程序中编辑数据库所有记录所需的成员函数。但在具体编程时还需要注意几个问题:其一,成员函数中的“删除”,属于“逻辑”删除,而非真正的“物理”删除;其二,程序中“控件”的成员变量与数据库中的对应“字段”是相互影响的。不论哪一方的数据发生改变,都会反过来影响另一方。认识几个相互作用代码:m_pSet-AddNew();/在表末尾添加一个新记录;UpdateData(TRUE);/将控件中的数据变量传给字段;m_pSet-Update(); /将新记录存入数据库m_pSet-MoveLast();/定位当前指针到最后一个记录;UpdateData(FALSE);/将字段数据成员的数据传递给控件;使其在视图中显示在视图中实现数据库编辑的方法与步骤:(1) 调入前述工程;(2) 打开对话框资源IDD_EX_ODBC_FORM编辑器,新添加3个按钮:“添加记录”、“修改记录”、“删除记录”IDC_STU_ADD(EDIT、DEL);(3) 为配合“添加”、“修改”记录,新添一个对话框资源IDD_STU_TABLE(学生表);(4) 给新对话框复制主体控件(如P216下图),并将两个缺省英文按钮分别改名为“确定”和“取消”;为对话框创建一个新类CStuDlg;(5) 手工为“编辑框”控件添加数据成员变量(如217页上表所示);(6) 在“消息映射”标签页内为CStuDlg中的“确定”(IDOK)按钮增加“左击”消息映射,并添加实现代码:UpdateData(TRUE);/将控件中的数据变量传给字段;(7) 分别为CEx_ODBCView类的3个新按钮增加“左击”消息映射,并依次添加用户代码;见文件:编辑数据库记录的代码. txt(8) 在当前源代码文件头部增加“包含语句”,将新类头文件纳入;(9) 编译并运行。3、处理多个库表为了显示一个数据库系统中多个库表之间的关系及显示相关信息,有时需要在一个视图对话框中同时显示多个表对象。例:用MFC自动处理多个表。步骤如下:(1) 打开“MFC类向导”,单击“添加新类”按钮,在下拉列表中选择“新建”;(2) 在“新类”对话框中为CRecordSet派生一个新类:CCodeSet;单击“确定”,弹出一个新对话框;(3) 在“数据库操作”对话框中定位好拟显示的新库表(如:zy);“确定”返回;(4) “确定”退出“类向导”;(5) 打开对话框资源IDD_STU_TABLE编辑器,为该对话框增加新的控件(外观如P221图示右侧区域;控件属性如P219上表);(6) 打开类向导,为CStuDlg增加新控件的成员变量(如P219下表);(7) 继续为CStuDlg增加WM_INITDIALOG消息映射,并添加对话框初始化代码见文件:处理多个表的数据库代码. Txt;(8) 为控件IDC_LIST1增加LBN_SELCHANGE消息映射,并添加函数代码;(9) 在当前文件开头增加包含语句,将新类CodeSet.h纳入;(10) 编译并运行。第三讲 添加数据库关联控件(ActiveX)介绍3个与显示数据库表有关的可视化ActiveX控件:MSFlexGrid、RemoteData、DBGrid。1、MS FlexGrid控件可以直观地显示数据库表网格,只要控件设置得足够大,则库表的所有记录都可同时显示出来。要成功地将该控件纳入到当前项目之中,一般需要4大步骤:(1) 向项目添加一个“控件类”;具体操作如下: 选择菜单:project / add project /Components and Controls,弹出“组件和控件容器”对话框; 双击文件夹列表中的“已注册的ActiveX控件”项,列出Windows操作平台所有的控件类型列表; 找到并双击“MS FlexGrid Control”项,弹出“确认类(Confirm Classes)”对话框; 单击“确定”钮,将列表中的4个类加入到当前项目资源编辑器的“控件工具栏”中。如P222图7.23所示; “关闭”上述主体对话框。结束添加过程。(2) 向项目的IDD_EX_ODBC_FORM资源添加MSFlexGrid控件,注意:在其属性对话框中可以为网格控件设置“颜色”、“图片”等。(3) 向项目添加控件代码: 打开“类向导”,为新增控件添加一个“数据成员”(m_MSFGrid); 为“用户视图类”的OnInitialUpdate函数体添加控件响应代码,目的在于使类对象m_pSet所关联的数据库表记录内容在控件中显示出来。代码名:数据库ActiveX控件(1) .txt(4) 编译并运行。结果见P224页图2、添加RemoteData、DBGrid控件的方法与前述控件不同,这两个控件一般是配合成双使用的。其最大好处在于不需要添加任何实现代码,即可使数据库表记录显示于控件当中。操作分3大步骤:(1) 先给当前项目的某一对话框资源添加RemoteData控件; 选定对话框资源,右击弹出快捷菜单,从中选择“Insert Active Control”;再从列表中找到“MS RemoteData控件”,“OK”确定; 设置新控件几个重要“属性”。如“数据源名”项应选择“My database for VC+”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精酿啤酒行业市场分析及流程研究
- 环评公众参与中的利益相关者沟通策略研究报告2025
- 电子厂员工入职笔试题及答案-企业管理
- 护理铺床试题及答案
- 茅台酒厂考试题及答案
- 2025年中职钳工考试题目及答案
- 2025年烟囱设计题目及答案
- 物理实验浮力考试题及答案
- 足球考试题库及答案
- 2025年山西省《保密知识竞赛必刷50题》考试题库及完整答案
- 2025年中国数据库市场研究报告
- 中国卢沟桥课件
- 爱护桌椅班会课件
- GB/T 19348.2-2025无损检测工业射线照相胶片第2部分:用参考值方法控制胶片处理
- 银行三年发展战略规划项目建议书
- 储能消防培训课件
- 混凝土浇筑作业平台承重验算
- 2025年中国硅钢片行业市场前景预测及投资价值评估分析报告
- 美乐家退会员终止协议书
- T/JSWP 04-2021社会稳定风险评估行业公平竞争自律规范
- T/CATCM 001.1-2017保健类眼贴第1部分:通用要求
评论
0/150
提交评论