-
- 素材大小:
- 1.57 MB
- 素材授权:
- 免费下载
- 素材格式:
- .ppt
- 素材上传:
- lipeier
- 上传时间:
- 2019-08-22
- 素材编号:
- 239240
- 素材类别:
- 课件PPT
-
素材预览
这是mfc编程ppt,包括了MFC ODBC数据库概述,MFC ODBC编程,MFC ODBC向导过程,ODBC应用编程等内容,欢迎点击下载。
mfc编程ppt是由红软PPT免费下载网推荐的一款课件PPT类型的PowerPoint.
数据库编程 Visual C++ 6.0为用户提供了ODBC、DAO及OLE DB三种数据库方式。这三种方式中最简单也最常用的是ODBC,因此我们只介绍MFC的ODBC编程方法和技巧,基于OLE DB的ADO(ActiveX Data Objects, ActiveX数据对象)技术,由同学们自己根据需要自己掌握。 一、MFC ODBC数据库概述 ODBC是一种使用SQL的程序设计接口,使用ODBC能使用户编写数据库应用程序变得容易简单,避免了与数据源相连接的复杂性。在Visual C++中,MFC的ODBC数据库类CDatabase(数据库类)、CRecordSet(记录集类)和CRecordView(记录视图类)可为用户管理数据库提供了切实可行的解决方案。 数据库基本概念 1. 数据库和DBMS 数据库是指以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。例如,把一个学校的教师、学生和课程等数据有序地组织起来,存储在计算机磁盘上,就构成了一个数据库。 为了有效地管理数据库,常常需要一些数据库管理系统(DBMS)为用户提供对数据库操作的各种命令、工具及方法,包括数据库的建立和记录的输入、修改、检索、显示、删除和统计等。流行的DBMS都提供了一个SQL接口。 2. SQL作为用来在DBMS中访问和操作的语言,SQL(结构化查询语言)语句分为两类: DDL(Data Definition Language,数据定义语言)语句,它是用来创建表、索引等; DML(Data Manipulation Language,数据操作语言)语句,这些语句是用来读取数据、更新数据和执行其他类似操作的语句。 3. ODBC、DAO和OLE DB ODBC提供了应用程序接口(API),使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相联。用户的程序就可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。作为Microsoft Windows Open Standards Architecture (WOSA,Windows开放式服务体系结构)的主要组成部分,ODBC一直沿用至今。 DAO类似于用Microsoft Access或Microsoft Visual Basic编写的数据库应用程序,它使用Jet数据库引擎形成一系列的数据访问对象。 OLE DB试图提供一种统一的数据访问接口,并能处理除了标准关系型数据库中的数据之外,还能处理包括邮件数据、Web上的文本或图形、目录服务(Directory Services)以及主机系统中的IMS和VSAM数据。OLE DB提供一个数据库编程COM(组件对象模型)接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型。 4. ADO ADO 是目前在Windows环境中比较流行的客户端数据库编程技术。它是Microsoft为最新和最强大的数据访问范例OLE DB而设计的,是一个便于使用的应用程序层接口。ADO使用户应用程序能够通过“OLE DB提供者”访问和操作数据库服务器中的数据。由于它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的编程接口,因而得到了广泛的应用。 ADO技术有许多优点,能够访问包括关系数据库、非关系数据库及所有的文件系统,还支持各种B/S与基于Web的应用程序,具有远程数据服务RDS(Remote Data Service)的特性,是远程数据存取的发展方向。 二、MFC ODBC编程 用MFC AppWizard使用ODBC数据库的一般过程是: ①用Access或其他数据库工具构造一个数据库; ②在Windows中为刚才构造的数据库定义一个ODBC数据源; ③在创建数据库处理的文档应用程序向导中选择数据源; ④设计界面,并使控件与数据表字段关联。 1. 构造数据库 用Microsoft Access 创建一个数据库学生成绩.mdb 2. 创建ODBC数据源 Windows中的ODBC组件是出现在系统的“控制面板”管理工具中,如下图所示。 双击ODBC图标(在图中已圈定),进入ODBC数据源管理器。用户可以设置ODBC数据源的一些信息。 三、MFC ODBC向导过程 3. 在MFC AppWizard中选择数据源 用MFC AppWizard可以容易地创建一个支持数据库的文档应用程序。 用MFC AppWizard创建一个单文档应用程序MyStudentDB。 在向导的第2步对话框中加入数据库的支持,如图所示。在该对话框中用户可以选择对数据库支持程序。 选中“数据库查看使用文件支持”项 保留其他默认选项,单击[OK]按钮,弹出如图所示的“Select Database Tables”对话框,从中选择要使用的表S。 单击[OK]按钮,又回到了向导的第2步对话框。 单击[完成]按钮。开发环境自动打开表单视图CStudentDBView的对话框资源模板IDD_STUDENTDB_FORM以及相应的对话框编辑器。 编译并运行,结果如图所示。 4. 设计浏览记录界面 在上面程序中,MFC为用户自动创建了用于浏览数据表记录的工具按钮和相应的“记录”菜单项。若用户选择这些浏览记录命令,系统会自动调用相应的函数来移动数据表的当前位置。 若在表单视图中添加控件并与表的字段相关联,就可以根据表的当前记录位置显示相应的数据。其步骤如下: 按照图所示的布局,为表单对话框资源模板添加表所示的控件。 按快捷键Ctrl+W,弹出MFC ClassWizard对话框,切换到Member Variables页面,在Class name框中选择CMystudentDBView,为上述控件添加相关联的数据成员。与以往添加控件变量不同的是,这里添加的控件变量都是由系统自动定义的,并与数据库表字段相关联的。例如,双击IDC_SNO,在弹出的“Add Member Variable”对话框中的成员变量下拉列表中选择要添加的成员变量名m_pSet->m_sno,选择后,控件变量的类型将自动设置,如图所示。 按照上一步骤的方法,为表所示的其他控件依次添加相关联的成员变量。 需要注意的是,控件变量的范围和大小应与数据表中的字段一一对应。结果如图所示。 四、ODBC应用编程 1. 数据表绑定更新 按快捷键Ctrl+W,打开MFC ClassWizard对话框,切换到“Member Variables”页面。 在“Class name”的下拉列表中选择“CStudentDBSet”,此时MFC ClassWizard对话框的[Update Columns]和[Bind All]按钮被激活,如图所示。 单击[Update Columns]按钮,又弹出前面的“Database Options”对话框,选择ODBC数据源,如图所示。 单击[OK]按钮,弹出如图所示的“Select Database Tables”对话框,从中选择要使用的表。 单击[OK]按钮,又回到MFC ClassWizard界面,如图所示。 单击[Bind All]按钮,MFC Wizard将自动为字段落添加相关联的变量。 2. 使用MFC所供的ODBC类: CDatabase(数据库类) CRecordSet(记录集类) CRecordView(可视记录集类)。 CDatabase类用来提供对数据源的连接,通过它可以对数据源进行操作; CRecordSet类对象提供了从数据源中提取出表的记录集,并提供了两种操作形式:动态行集(Dynasets)和快照集(Snapshots)。 动态行集能与其他用户所做的更改保持同步 快照集则是数据的一个静态视图。 CRecordView类用来控制并显示数据库记录,该视图是直接连到一个CRecordSet对象的表单视图。但在实际应用过程中,CRecordSet类是用户最关心的,因为它为用户提供了对表记录进行操作的许多功能,如查询记录、添加记录、删除记录、修改记录等,并能直接为数据源中的表映射一个CRecordSet类对象,方便用户的操作。 3. 查询记录 使用CRecordSet类的成员变量m_strFilter、m_strSort和成员函数Open可以对表进行记录的查询和排序。在MyStudentDB的表单中添加一个编辑框和一个[查询]按钮,单击[查询]按钮,将按编辑框中的学号内容对数据表进行查询,并将查找到的记录显示在前面添加的控件中。具体过程如下: 打开应用程序的表单资源,按图所示的布局添加控件,其中添加的编辑框ID号设为IDC_SNO_QUERY,“查询”按钮的ID号设为IDC_BUTTON_QUERY。 用MFC ClassWizard为控件IDC_SNO_QUERY添加关联变量m_strQuery。 在Message Maps页面的Cex2View类中添加按钮控件IDC_BUTTON_QUERY的BN_CLICKED消息映射,并在映射函数中添加下列代码: 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"; m_pSet->Open(); // 打开记录集 if (!m_pSet->IsEOF()) // 如果打开记录集有记录 UpdateData(FALSE); // 自动更新表单中控件显示的内容 else MessageBox("没有查到你要找的学号记录!"); } 代码中, m_strFilter和m_strSort是CRecordSet的成员变量,用来执行条件查询和结果排序。其中,m_strFilter称为“过滤字符串”,相当于SQL语句中WHERE后的条件串;而m_strSort称为“排序字符串”,相当于SQL语句中ORDER BY后的字符串。若字段的数据类型是文本,则需要在m_strFilter字符串中将单引号将查询的内容括起来,对于数字,则不需要用单引号。 编译运行并测试,结果如图所示。 4. 编辑记录 CRecordSet类为用户提供了许多对表记录进行操作的成员函数用来添加记录、删除记录和修改记录等。 4.1 增加记录 增加记录是使用AddNew函数,但要求数据库必须是以“可增加”的方式打开的。下面的代码是在表的末尾增加新记录: void CMyStudentDBView::OnButtonAdd() { UpdateData(); m_pSet->AddNew(); m_pSet->m_sno=m_addsno; m_pSet->m_sname=m_addname; m_pSet->m_ssex=m_addsex; m_pSet->m_depart=m_adddepart; m_pSet->Update(); m_pSet->MoveLast(); m_pSet->Requery(); MessageBox("添加记录成功"); m_addsno=m_addname=m_addsex=m_adddepart=""; UpdateData(false); } 4.2 删除记录 可以直接使用CRecordSet::Delete函数来删除记录。需要说明的是,要使删除操作有效,还需要移动记录函数。例如下面的代码: m_pSet->Delete(); m_pSet->Requery(); MessageBox("删除成功"); UpdateData(false); m_pSet->MoveNext(); if(m_pSet->IsEOF()) { m_pSet->MoveLast(); 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)来撤消操作,便可恢复在增加或修改操作之前的当前记录。
mfc教程ppt:这是mfc教程ppt,包括了数据库编程,MFC ODBC数据库概述,MFC ODBC编程,MFC ODBC向导过程,ODBC应用编程等内容,欢迎点击下载。
mfc按钮控件ppt:这是mfc按钮控件ppt,包括了对话框的使用,控件的创建和使用方法,作业1,常用控件,通用对话框和消息对话框,作业2等内容,欢迎点击下载。