《数据库应用》PPT课件.ppt
《《数据库应用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库应用》PPT课件.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9章数据库应用章数据库应用9.1数据库和数据库和ODBC操作操作9.2MFC ODBC应用编程应用编程9.3ADO数据库编程数据库编程9.4数据库相关的数据库相关的ActiveX控件控件9.5综合应用综合应用9.1数据库和数据库和ODBC操作操作 9.1.1 数据库基本概念 1.数据库和数据库和DBMS 数据库是指以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。例如,把一个学校的教师、学生和课程等数据有序地组织起来,存储在计算机磁盘上,就构成了一个数据库。为了能有效地管理数据库,常常需要数据库管理系统(DBMS)为用户提供对数据库的操作,包括数据库的建立和记录的输入、修改、检
2、索、显示、删除和统计等。DBMS为用户提供的对数据库操作的方法包括交互界面和SQL语句接口。Visual C+就是通过SQL语句接口操作数据库。目前,使用最多的是关系数据库,有许多关系数据库管理系统(DBMS),如Access、SQL Server、Oracle、Sybase 和Visual Foxpro等,2.SQL语句语句SQL(结构化查询语言)语句是用来在DBMS中访问和操作数据库的标准语言,SQL语言主要包括三个方面:9.1数据库和数据库和ODBC操作操作 (1)数据操纵语言DML(Data Manipulation Language):主要包括查询、插入、删除和修改数据库中的数据的操
3、作。(2)数据定义语言DDL(Data Definition Language):定义数据库结构,包括定义表、视图和索引等。(3)数据控制语言DCL(Data Control Language):包括对数据库的安全性控制、完整性控制以及对事务的定义、并发控制和恢复等。3.ODBC、DAO和和OLE DB Visual C+为用户提供了ODBC(Open Database Connectivity,开放数据库连接)、DAO(Data Access Objects,数据访问对象)及OLE DB(OLE Data Base,OLE数据库)三种数据库方式,使用户的应用程序从特定的数据管理系统脱离出来。
4、ODBC提供了应用程序接口(API),使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相联。用户的程序可通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。作为Microsoft Windows Open Standards Architecture(WOSA,Windows开放式服务体系结构)的主要组成部分,ODBC一直沿用至今。9.1数据库和数据库和ODBC操作操作 DAO类似于用Microsoft Access或Microsoft Visual Basic编写的数据库应用程序,它使用Jet数据库引擎形成一系列的数据访问对象:数据库对象、表和查询对象、记录集对象等。它
5、可以打开一个Access数据库文件(MDB文件),也可直接打开一个ODBC数据源以及使用Jet引擎打开一个ISAM(被索引的顺序访问方法)类型的数据源(dBASE、FoxPro、Paradox、Excel或文本文件)。OLE DB试图提供一种统一的数据访问接口,并能处理除了标准关系型数据库中的数据之外,还能处理包括邮件数据、Web上的文本或图形、目录服务(Directory Services)以及主机系统中的IMS和VSAM数据。OLE DB提供一个数据库编程COM(组件对象模型)接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型。这个C
6、OM接口与ODBC相比,其健壮性和灵活性要高得多。但是,由于OLE DB的程序比较复杂,因而对于一般用户来说使用ODBC和DAO方式已能满足一般数据库处理的需要。4.ADO ADO 是目前在Windows环境中比较流行的客户端数据库编程技术。它是Microsoft为最新和最强大的数据访问范例OLE DB而设计的,是一个便于使用的应用程序层接口。ADO使用户应用程序能够通过“OLE DB提供者”访问和操作数据库服务器中的数据。由于它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的编程接口,因而得到了广泛的应用。9.1数据库和数据库和ODBC操作操作 A
7、DO技术基于COM(Component Object Model,组件对象模型),具有COM组件的许多优点,可以用来构造可复用应用框架,被多种语言支持,能够访问包括关系数据库、非关系数据库及所有的文件系统。另外,ADO还支持各种B/S与基于Web的应用程序,具有远程数据服务RDS(Remote Data Service)的特性,是远程数据存取的发展方向。表表9.1 学生课程成绩表学生课程成绩表(score)及其表结构及其表结构学号学号(studentno)21010101 21010102 21010501 21010502课程号课程号(course)成绩成绩(score)学分学分(credi
8、t)21121052112348212134421213318085707832.533序序 号号字段名称字段名称数据类型数据类型字段大小字段大小小数位小数位字段含义字段含义1234studentnocoursescorecredit文本文本数字数字87单精度单精度11学号 课程号 成绩学分9.1数据库和数据库和ODBC操作操作 9.1.2 MFC ODBC向导过程用MFC AppWizard使用ODBC数据库的一般过程是:用Access或其他数据库工具构造一个数据库;在Windows中为刚才构造的数据库定义一个ODBC数据源;在创建数据库处理的文档应用程序向导中选择数据源;设计界面,并使控件
9、与数据表字段关联。1.构造数据库构造数据库 数据库表与表之间的关系构成了一个数据库。作为示例,这里用Microsoft Access 创建一个数据库Student.mdb,其中暂包含一个数据表score,用来描述学生课程成绩,如表9.1所示。在表中包括上、下两部分,上部分是数据表的记录内容,下部分是数据表的结构内容。需要说明的是,数据表结构可以看成是一个具有行和列的二维表格。表格中的一行称为一个记录记录,一列称为一个字段字段,每列的标题称为字段名。2.创建创建ODBC数据源数据源Windows中的ODBC组件是出现在系统的“控制面板”中的“管理工具”中的“数据源(ODBC)”,如图9.1所示。
10、9.1数据库和数据库和ODBC操作操作图图9.1 Windows XP的管理工具的管理工具9.1数据库和数据库和ODBC操作操作 双击“数据源(ODBC)”,进入ODBC数据源管理器。在这里,用户可以设置ODBC数据源的一些信息。其中,“用户DSN”页面是用来定义用户自己在本地计算机使用的数据源名(DSN),如图9.2所示。图图9.2 ODBC数据源管理器数据源管理器9.1数据库和数据库和ODBC操作操作 那么,创建一个用户DSN可有如下的过程:(1)单击添加按钮,弹出有一驱动程序列表的“创建新数据源”对话框,在该对话框中选择要添加用户数据源的驱动程序,这里选择“Microsoft Acces
11、s Driver”,如图9.3所示。(2)单击完成按钮,进入指定驱动程序的安装对话框,单击选择按钮将前面创建的数据库调入,然后在数据源名输入“Database Example For VC+”,结果如图9.4所示。(3)单击确定按钮,刚才创建的用户数据源被添加在“ODBC数据源管理器”的“用户数据源”列表中。图图9.3 “创建新数据源创建新数据源”对话框对话框 图图9.4 ODBC Access 安装对话框安装对话框9.1数据库和数据库和ODBC操作操作3.在在MFC AppWizard中选择数据源中选择数据源 用MFC AppWizard可以容易地创建一个支持数据库的文档应用程序,如下面的过
12、程。(1)用MFC AppWizard创建一个单文档应用程序Ex_ODBC。(2)在向导的第2步对话框中加入数据库的支持,如图9.5所示。在该对话框中用户可以选择对数据库支持程序,其中各选项的含义如表9.2所示。图图9.5 向导的第二步对话框向导的第二步对话框9.1数据库和数据库和ODBC操作操作表表9.2 MFC支持数据库的不同选项支持数据库的不同选项选项选项创建的视图类创建的视图类创建的文档类创建的文档类否(None)从CView派生支持文档的常用操作,并在“文件”菜单中有“新建”、“打开”、“保存”、“另存为”等命令。标题文件(Headerfilesonly)从CView派生除了在Std
13、Afx.h文件中添加了“#include”语句外,其余与“None”选项相同查看数据库不使用文件支持(Databaseviewwithoutfilesupport)从CRecordView派生不支持文档的常用操作,也就是说,创建的文档类不能进行序列化,且在“文件”菜单中没有“新建”等文档操作命令。但用户可在用户视图在中使用CRecordset类处理数据库查看数据库使用文件支持(Databaseviewwithfilesupport)从CRecordView派生全面支持文档操作和数据库操作9.1数据库和数据库和ODBC操作操作 (3)选中“数据库查看使用文件支持”项,单击数据源(Data Sou
14、rce)按钮,弹出“Database Options”对话框,从中选择ODBC的数据源“Database Example For VC+”,如图9.6所示。需要说明的是,Recordset type(记录集类型)有动态集(Dynaset)和快照集(Snapshot)之分。动态集能与其他应用程序所做的更改保持同步,而快照集则是数据的一个静态视图。这两种类型在记录集被打开时都提供一组记录,所不同的是:当在一个动态集里滚动一条记录时,由其他用户或应用程序中的其他记录集对该记录所做的更改会相应地显示出来,而快照集则不会。图图9.6 “Database Options”对话框对话框图图9.7 “Sele
15、ct Database Tables”对话框对话框9.1数据库和数据库和ODBC操作操作 (4)保留其他默认选项,单击OK按钮,弹出如图9.7所示的“Select Database Tables”对话框,从中选择要使用的表score。(5)单击OK按钮,又回到了向导的第2步对话框。(6)单击完成按钮。开发环境自动打开表单视图CEx_ODBCView的对话框资源模板 IDD_EX_ODBC_FORM以及相应的对话框编辑器。(7)编译并运行,结果如图9.8所示。记录浏览按钮记录浏览按钮图图9.8 Ex_ODBC运行结果运行结果9.1数据库和数据库和ODBC操作操作 需要说明的是,MFC AppWi
16、zard创建的Ex_ODBC应用程序与一般默认的单文档应 用程序相比较,在类框架方面,有如下几点不同:添加了一个CEx_ODBCSet类,它与上述过程中所选择的数据表score进行数据绑定,也就是说,CEx_ODBCSet对象的操作实质上对数据表进行操作。将CEx_ODBCView类的基类设置成CRecordView。由于CRecordView的基类是CFormView,因此它需要与之相关联的表单资源。在CEx_ODBCView类中添加了一个全局的CEx_ODBCSet对象指针变量m_pSet,目的是在表单视图和记录集之间建立联系,使得记录集中的查询结果能够很容易地在表单视图上显示出来。4.设
17、计浏览记录界面设计浏览记录界面在上面的Ex_ODBC中,MFC为用户自动创建了用于浏览数据表记录的工具按钮和相应的“记录”菜单项。若用户选择这些浏览记录命令,系统会自动调用相应的函数来移动数据表的当前位置。若在表单视图CEx_ODBCView中添加控件并与表的字段相关联,就可以根据表的当前记录位置显示相应的数据。其步骤如下。9.1数据库和数据库和ODBC操作操作(1)按照图9.9所示的布局,为表单对话框资源模板添加表9.3所示的控件。图图9.9 控件的设计控件的设计9.1数据库和数据库和ODBC操作操作表表9.3 表单对话框控件及属性表单对话框控件及属性添加的控件添加的控件ID号号标标 题题其
18、他属性其他属性编辑框(学号)IDC_STUNO默认编辑框(课程号)IDC_COURSENO默认编辑框(成绩)IDC_SCORE默认编辑框(学分)IDC_CREDIT默认 (2)按快捷键Ctrl+W,弹出MFC ClassWizard对话框,切换到Member Variables页面,在Class name框中选择CEx_ODBCView,为上述控件添加相关联的数据成员。与以往添加控件变量不同的是,这里添加的控件变量都是由系统自动定义的,并与数据库表字段相关联的。例如,双击IDC_STUNO,在弹出的“Add Member Variable”对话框中的成员变量下拉列表中选择要添加的成员变量名m_
19、pSet-m_studentno,选择后,控件变量的类型将自动设置,如图9.10所示。图图9.10 为控件添加数据成员为控件添加数据成员9.1数据库和数据库和ODBC操作操作 (3)按照上一步骤的方法,为表9.4所示的其他控件依次添加相关联的成员变量。需要说明的是,控件变量的范围和大小应与数据表中的字段一一对应。结果如图9.11所示。表表9.4 控件变量控件变量控件控件ID号号变量名变量名范围和大小范围和大小IDC_COURSENOm_pSetm_course7IDC_SCOREm_pSetm_score0100IDC_SREDITm_pSetm_credit120图图9.11 添加的控件变量
20、图添加的控件变量图 9.12 Ex_ODBC最后运行结果最后运行结果(4)编译运行并测试,结果如图9.12所示。9.1数据库和数据库和ODBC操作操作 9.1.3 ODBC数据表绑定更新上述MFC ODBC应用程序框架中,数据表score和CEx_ODBCSet类进行数据绑定。但当数据表的字段更新后,例如,若用Access将score数据表再添加一个“备注”字段名(文本类型,长度为50个字符),并关闭Access后,就需要为Ex_ODBC重新为数据表score和CEx_ODBCSet类进行数据绑定的更新,其步骤如下:(1)按快捷键Ctrl+W,打开MFC ClassWizard对话框,切换到“
21、Member Variables”页面。(2)在“Class name”的下拉列表中选择“CEx_ODBCSet”,此时MFC ClassWizard对话框的Update Columns和Bind All按钮被激活,如图9.13所示。需要说明的是,Update Columns 按钮用来重新指定与CRecordSet类相关的表,而Bind All按钮用来指定表的 字段的绑定,即为字段重新指定默认的关联变量。图图9.13 “MFC ClassWizard”对话框对话框9.1数据库和数据库和ODBC操作操作 (3)单击Update Columns按钮,又弹出前面的“Database Options”
22、对话框,选择ODBC数据源“Database Example For VC+”,如图9.14所示。单击OK按钮,弹出如图9.15所示的“Select Database Tables”对话框,从中选择要使用的表。单击OK按钮,又回到MFC ClassWizard界面,如图9.16所示。图图9.14 “Database Options”对话框对话框 图图9.15 “Select Database Tables”对话框对话框9.1数据库和数据库和ODBC操作操作图图9.16 更新后的更新后的“Member Variables”页面页面 (4)单击Bind All按钮,MFC Wizard将自动为字段
23、落添加相关联的变量。需要说明的是,在按Bind All按钮绑定前最好将已有的字段关联变量删除,以保证数据表字段名更改或删除后与变量绑定的正确性。9.2MFC ODBC应用编程应用编程 9.2.1 查询记录 使用CRecordSet类的成员变量m_strFilter、m_strSort和成员函数Open可以对表进行记录的查询和排序。先来看一个示例,该示例在前面的Ex_ODBC的表单中添加一个编辑框和一个查询按钮,单击查询按钮,将按编辑框中的学号内容对数据表进行查询,并将查找到的记录显示在前面添加的控件中。具体过程如下:(1)打开Ex_ODBC应用程序的表单资源,按图9.17所示的布局添加控件,其
24、中添加的编辑框ID号设为IDC_EDIT_QUERY,“查询”按钮的ID号设为IDC_BUTTON_QUERY。图图9.17 要添加的控件要添加的控件9.2MFC ODBC应用编程应用编程 (2)用MFC ClassWizard为控件IDC_EDIT_QUERY添加关联变量m_strQuery。(3)在CEx_ODBCView类中添加按钮控件IDC_BUTTON_QUERY的BN_CLICKED消息映射,并在映射函数中添加下列代码:代码中,m_strFilter和m_strSort是CRecordSet的成员变量,用来执行条件查询和结果排序。其中,m_strFilter称为“过滤字符串”,相当
25、于SQL语句中WHERE后的条件串;而m_strSort称为“排序字符串”,相当于SQL语句中ORDER BY后的字符串。若字段的数据类型是文本,则需要在m_strFilter字符串中将单引号将查询的内容括起来,对于数字,则不需要用单引号。需要注意的是:只有在调用Open函数之前设置m_strFilter和m_strSort才能保证查询和排序有效。如果有多个条件查询,则可以使用AND、OR、NOT来组合,例如下面的代码:m_pSet-m_strFilter=studentno=21010101 AND studentnoAddNew();/在表的末尾增加新记录 m_pSet-SetFieldN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库应用 数据库 应用 PPT 课件
限制150内