《MFC数据库编程》PPT课件.ppt

上传人:san****019 文档编号:7349189 上传时间:2020-03-20 格式:PPT 页数:49 大小:1.60MB
返回 下载 相关 举报
《MFC数据库编程》PPT课件.ppt_第1页
第1页 / 共49页
《MFC数据库编程》PPT课件.ppt_第2页
第2页 / 共49页
《MFC数据库编程》PPT课件.ppt_第3页
第3页 / 共49页
点击查看更多>>
资源描述
MFC数据库编程 授课 东南大学郑雪清 mail snow6789 VC 语言程序设计 数据库编程 VisualC 6 0为用户提供了ODBC DAO及OLEDB三种数据库方式 这三种方式中最简单也最常用的是ODBC 因此我们只介绍MFC的ODBC编程方法和技巧 基于OLEDB的ADO ActiveXDataObjects ActiveX数据对象 技术 由同学们自己根据需要自己掌握 一 MFCODBC数据库概述 ODBC是一种使用SQL的程序设计接口 使用ODBC能使用户编写数据库应用程序变得容易简单 避免了与数据源相连接的复杂性 在VisualC 中 MFC的ODBC数据库类CDatabase 数据库类 CRecordSet 记录集类 和CRecordView 记录视图类 可为用户管理数据库提供了切实可行的解决方案 数据库基本概念 1 数据库和DBMS数据库是指以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合 例如 把一个学校的教师 学生和课程等数据有序地组织起来 存储在计算机磁盘上 就构成了一个数据库 为了有效地管理数据库 常常需要一些数据库管理系统 DBMS 为用户提供对数据库操作的各种命令 工具及方法 包括数据库的建立和记录的输入 修改 检索 显示 删除和统计等 流行的DBMS都提供了一个SQL接口 2 SQL作为用来在DBMS中访问和操作的语言 SQL 结构化查询语言 语句分为两类 DDL DataDefinitionLanguage 数据定义语言 语句 它是用来创建表 索引等 DML DataManipulationLanguage 数据操作语言 语句 这些语句是用来读取数据 更新数据和执行其他类似操作的语句 3 ODBC DAO和OLEDBODBC提供了应用程序接口 API 使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相联 用户的程序就可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的 作为MicrosoftWindowsOpenStandardsArchitecture WOSA Windows开放式服务体系结构 的主要组成部分 ODBC一直沿用至今 DAO类似于用MicrosoftAccess或MicrosoftVisualBasic编写的数据库应用程序 它使用Jet数据库引擎形成一系列的数据访问对象 OLEDB试图提供一种统一的数据访问接口 并能处理除了标准关系型数据库中的数据之外 还能处理包括邮件数据 Web上的文本或图形 目录服务 DirectoryServices 以及主机系统中的IMS和VSAM数据 OLEDB提供一个数据库编程COM 组件对象模型 接口 使得数据的使用者 应用程序 可以使用同样的方法访问各种数据 而不用考虑数据的具体存储地点 格式或类型 4 ADOADO是目前在Windows环境中比较流行的客户端数据库编程技术 它是Microsoft为最新和最强大的数据访问范例OLEDB而设计的 是一个便于使用的应用程序层接口 ADO使用户应用程序能够通过 OLEDB提供者 访问和操作数据库服务器中的数据 由于它兼具有强大的数据处理功能 处理各种不同类型的数据源 分布式的数据处理等等 和极其简单 易用的编程接口 因而得到了广泛的应用 ADO技术有许多优点 能够访问包括关系数据库 非关系数据库及所有的文件系统 还支持各种B S与基于Web的应用程序 具有远程数据服务RDS RemoteDataService 的特性 是远程数据存取的发展方向 二 MFCODBC编程 用MFCAppWizard使用ODBC数据库的一般过程是 用Access或其他数据库工具构造一个数据库 在Windows中为刚才构造的数据库定义一个ODBC数据源 在创建数据库处理的文档应用程序向导中选择数据源 设计界面 并使控件与数据表字段关联 1 构造数据库用MicrosoftAccess创建一个数据库学生成绩 mdb 其中包含学生表S 课程表C和成绩表SC 数据表的结构和内容见例题 有关该部分内容交给学生自学 2 创建ODBC数据源Windows中的ODBC组件是出现在系统的 控制面板 管理工具中 如下图所示 双击ODBC图标 在图中已圈定 进入ODBC数据源管理器 用户可以设置ODBC数据源的一些信息 这里用什么数据源名 后面要选择该名 三 MFCODBC向导过程 3 在MFCAppWizard中选择数据源用MFCAppWizard可以容易地创建一个支持数据库的文档应用程序 用MFCAppWizard创建一个单文档应用程序Ex2 在向导的第2步对话框中加入数据库的支持 如图所示 在该对话框中用户可以选择对数据库支持程序 选中 数据库查看使用文件支持 项 使用前面定义的ODBC数据源名 保留其他默认选项 单击 OK 按钮 弹出如图所示的 SelectDatabaseTables 对话框 从中选择要使用的表S 选择数据表 单击 OK 按钮 又回到了向导的第2步对话框 单击 完成 按钮 开发环境自动打开表单视图CEx2View的对话框资源模板IDD Ex2 FORM以及相应的对话框编辑器 编译并运行 结果如图所示 4 设计浏览记录界面在上面的Ex2中 MFC为用户自动创建了用于浏览数据表记录的工具按钮和相应的 记录 菜单项 若用户选择这些浏览记录命令 系统会自动调用相应的函数来移动数据表的当前位置 若在表单视图CEx2View中添加控件并与表的字段相关联 就可以根据表的当前记录位置显示相应的数据 其步骤如下 按照图所示的布局 为表单对话框资源模板添加表所示的控件 按快捷键Ctrl W 弹出MFCClassWizard对话框 切换到MemberVariables页面 在Classname框中选择CEx2View 为上述控件添加相关联的数据成员 与以往添加控件变量不同的是 这里添加的控件变量都是由系统自动定义的 并与数据库表字段相关联的 例如 双击IDC SNO 在弹出的 AddMemberVariable 对话框中的成员变量下拉列表中选择要添加的成员变量名m pSet m SNO 选择后 控件变量的类型将自动设置 如图所示 按照上一步骤的方法 为表所示的其他控件依次添加相关联的成员变量 需要注意的是 控件变量的范围和大小应与数据表中的字段一一对应 结果如图所示 编译运行并测试 结果如图所示 四 ODBC应用编程 1 数据表绑定更新按快捷键Ctrl W 打开MFCClassWizard对话框 切换到 MemberVariables 页面 在 Classname 的下拉列表中选择 CEx2Set 此时MFCClassWizard对话框的 UpdateColumns 和 BindAll 按钮被激活 如图所示 单击 UpdateColumns 按钮 又弹出前面的 DatabaseOptions 对话框 选择ODBC数据源 DatabaseExampleForVC 如图所示 单击 OK 按钮 弹出如图所示的 SelectDatabaseTables 对话框 从中选择要使用的表 单击 OK 按钮 又回到MFCClassWizard界面 如图所示 单击 BindAll 按钮 MFCWizard将自动为字段落添加相关联的变量 2 使用MFC所供的ODBC类 CDatabase 数据库类 CRecordSet 记录集类 和CRecordView 可视记录集类 CDatabase类用来提供对数据源的连接 通过它可以对数据源进行操作 CRecordView类用来控制并显示数据库记录 该视图是直接连到一个CRecordSet对象的表单视图 但在实际应用过程中 CRecordSet类是用户最关心的 因为它为用户提供了对表记录进行操作的许多功能 如查询记录 添加记录 删除记录 修改记录等 并能直接为数据源中的表映射一个CRecordSet类对象 方便用户的操作 CRecordSet类对象提供了从数据源中提取出表的记录集 并提供了两种操作形式 动态行集 Dynasets 和快照集 Snapshots 动态行集能与其他用户所做的更改保持同步快照集则是数据的一个静态视图 3 查询记录使用CRecordSet类的成员变量m strFilter m strSort和成员函数Open可以对表进行记录的查询和排序 在Ex2的表单中添加一个编辑框和一个 查询 按钮 单击 查询 按钮 将按编辑框中的学号内容对数据表进行查询 并将查找到的记录显示在前面添加的控件中 具体过程如下 打开Ex2应用程序的表单资源 按图所示的布局添加控件 其中添加的编辑框ID号设为IDC SNO QUERY 查询 按钮的ID号设为IDC BUTTON QUERY 用MFCClassWizard为控件IDC SNO QUERY添加关联变量m strQuery 在MessageMaps页面的Cex2View类中添加按钮控件IDC BUTTON QUERY的BN CLICKED消息映射 并在映射函数中添加下列代码 voidCEx2View OnButtonQuery UpdateData m strQuery TrimLeft if m strQuery IsEmpty MessageBox 要查询的学号不能为空 return if m pSet IsOpen m pSet Close 如果记录集打开 则先关闭m pSet m strFilter Format SNO s m strQuery SNO是S表的字段名 用来指定查询条件m pSet m strSort DEPART course是score表的字段名 用来按course字段从小到大排序 m pSet Open 打开记录集if m pSet IsEOF 如果打开记录集有记录UpdateData FALSE 自动更新表单中控件显示的内容elseMessageBox 没有查到你要找的学号记录 代码中 m strFilter和m strSort是CRecordSet的成员变量 用来执行条件查询和结果排序 其中 m strFilter称为 过滤字符串 相当于SQL语句中WHERE后的条件串 而m strSort称为 排序字符串 相当于SQL语句中ORDERBY后的字符串 若字段的数据类型是文本 则需要在m strFilter字符串中将单引号将查询的内容括起来 对于数字 则不需要用单引号 编译运行并测试 结果如图所示 4 编辑记录CRecordSet类为用户提供了许多对表记录进行操作的成员函数用来添加记录 删除记录和修改记录等 4 1增加记录增加记录是使用AddNew函数 但要求数据库必须是以 可增加 的方式打开的 下面的代码是在表的末尾增加新记录 m pSet AddNew 在表的末尾增加新记录m pSet SetFieldNull 刷新记录集 这在快照集方式下是必须的 4 2删除记录可以直接使用CRecordSet Delete函数来删除记录 需要说明的是 要使删除操作有效 还需要移动记录函数 例如下面的代码 CRecordsetStatusstatus m pSet GetStatus status 获取当前记录集状态m pSet Delete 删除当前记录if status m lCurrentRecord 0 若当前记录索引号为0 0表示第一条记录 m pSet MoveNext 下移一个记录elsem pSet MoveFirst 移动到第一个记录处UpdateData FALSE 4 3修改记录函数CRecordSet Edit可以用来修改记录 m pSet Edit 修改当前记录m pSet m name 刘向东 修改当前记录字段值 m pSet Update 将修改结果存入数据库m pSet Requery 4 4撤消操作如果用户在进行增加或者修改记录后 希望放弃当前操作 则在调用CRecordSet Update 函数之前调用CRecordSet Move AFX MOVE REFRESH 来撤消操作 便可恢复在增加或修改操作之前的当前记录
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!