没有合适的资源?快使用搜索试试~ 我知道了~
Visual C++ 数据库编程
1星 需积分: 10 36 下载量 66 浏览量
2009-12-06
12:32:05
上传
评论 1
收藏 429KB DOC 举报
温馨提示
试读
31页
用数据库方式来管理日常生活中大量的信息已变得越来越重要,并出现了许多数据库管理系统,如Microsoft Access,Microsoft SQL Server,Oracle Server等,尽管这些系统能进行数据库的管理,但却不能开发出其它功能强大的Windows应用程序。而Visual C ++能将关系数据库与面向对象的编程方法有机地结合起来,使得数据库处理和应用程序开发都能很好地兼顾。
资源推荐
资源详情
资源评论
第 8 章 数据库编程
用数据库方式来管理日常生活中大量的信息已变得越来越重要,并出现了许多
数据库管理系统,如 Microsoft Access,Microsoft SQL Server,Oracle Server 等,尽管
这些系统能进行数据库的管理,但却不能开发出其它功能强大的 Windows 应用程
序。而 Visual C ++能将关系数据库与面向对象的编程方法有机地结合起来,使得
数据库处理和应用程序开发都能很好地兼顾。
Visual c++6.0 为用户提供了 ODBC、DAO 及 OLE DB 三种数据库方式,这三种方式
中最简单、最常用的是 ODBC。因而我们重点介绍 MFC 的 ODBC 编程方法和技巧,
并介绍一些用于数据库的 ActiveX 控件。
8、1 MFC 的 ODBC 数据库概述
ODBC(Open Database Connectivity 开放数据库连接),是一种使用 SQL
的程序设计接口,使用 ODBC 能使用户编写数据库应用程序变得容易、简单、
避免了与数据源相连接的复杂性。在 Visual C++中,MFC 的 ODBC 数据库类
CDatabase(数据库类)、CRecordSet(记录集类)和 CRecordView(记录视图
类)可为用户管理数据库提供切实可行的解决方案。
用 MFC AppWizard(exe)创建一个数据库处理的 SDI/MDI 程序,只需在向导
的 第 二 步 中 选 中 “ Database view without file support” 或 “ Database view with
filesupport”即可。当然,在创建之前预先构造好一个数据库,然后进行 ODBC
的数据源定义。
8、1、1 数据库基本概念
1、数据库和 DBMS
数据库是指以一定的组织形式存放在计算机存储介质上的相互关联的数据集
合。例如,把一个学校的教师、学生和课程等数据有序地组织起来,存储在计
算机磁盘上,就构成了一个数据库。
为了有效地管理数据库,常常需要一些数据库管理系统(DBMS)为用户提供
对数据库操作的各种命令、工具及方法,包括数据库的建立和记录的输入、修
改、检索、显示、删除和统计等。流行的 DBMS 都提供一个 SQL 接口。
2、SQL(结构化查询语言)
作为用在 DBMS 中访问和操作的语言,SQL(结构化查询语言)语句分为 2
类:一类是 DDL(Data Definition Language,数据定义语句,它用于创建表、索
引等,另一类是 DML(Data Manipulation Language,数据操作语言)语句,这些
语句用于读取数据、更新数据和执行其他类似操作的语句。
3、ODBC、DAO 和 OLE DB
Visual C++为用户提供了 ODBC(Open Database Connectivity,开放数据库连
接 ) 、 DAO ( Data Access Objects, 数 据 访 问 对 象 ) 及 OLE DB ( OLE Data
Base,OLE 数据库)3 种数据库方式,使用户的应用程序从特定的数据管理系统
(DBMS)脱离出来。
ODBC 提供了应用程序接口(API),使得任何一个数据库都可以通过
ODBC 驱动器与指定的 DBMS 相联。用户的程序可以通过调用 ODBC 驱动管理
器中相应的驱动程序达到管理数据库的目的。作为 Microsoft Windows Open
Standards Architecture(WOSA,Windows 开放式服务体系结构)的主要组成部分,
ODBC 一直沿用至今。
DAO 类似于用 Microsoft Access 或 Microsoft Visual Basic 编写的数据库应用
程序,它使用 Jet 数据库引擎形成一系列的数据访问对象:数据库对象、表和查
询对象、记录集对象等。它可以打开一个 Access 数据库文件(MDB 文件),
也可直接打开一个 ODBC 数据源以及使用 Jet 引擎打开一个 ISAM(被索引的顺
序访问方法)类型的数据源(dBASE、FoxPro、Paradox、Excel 或文本文件)。
OLE DB 试图提供一种统一的数据访问接口,并能处理除了标准关系型数
据库中的数据之外,还能处理包括邮件数据、Web 上的文本或图形、目录服务
(Directory Services)以及主机系统中的 IMS 和 VSAM 数据。OLE DB 提供一
个数据库编程 COM(组件对象模型)接口,使得数据的使用者(应用程序)可
以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类
型。这个 COM 接口与 ODBC 相比,其健壮性和灵活性要高得多。但是,由于
OLE DB 的程序比较复杂,因而对于一般用户来说使用 ODBC 和 DAO 方式已能
满足一般数据库处理的需要。
4、ADO
ADO 是目前在 Windows 环境中比较流行的客户端数据库编程技术。它是
Microsoft 为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用
的应用程序层接口。ADO 使用应用程序能够通过“OLE DB 提供者“访问和操作
数据库服务器中的数据。由于它兼有强大的数据处理功能(处理各种不同类型
的数据源、分布式的数据处理等)和极其简单、易用的编程接口,因而得到了
广泛的应用。
ADO 技术基于 COM(Component Objiect Model,组件对象模型),具有
COM 组件的许多优点,可以用于构造可复用应用框架,被许多种语言支持,能
够访问包括关系数据库、非关系数据库及所有的文件系统。另外,ADO 还支持
各种 B/S 与基于 Web 的应用程序,具有远程数据服务 RDS(Remote Data Service)
的特性,是远程数据存取的发展方向。
8、1、2 MFC ODBC 向导过程
用 MFC AppWizard 使用 ODBC 数据库的一般过程是:(1)用 Access 或其他
数据库工具构造一个数据库;(2)在 Windows 中为刚才构造的数据库定义一
个 ODBC 数据源;(3)在创建数据库处理的文档应用程序向导中选择数据源
(4)设计界面,并使控件与数据表字段关联。
1、设计数据库
数据库表与表之间的关系构成了一个数据库。这里我们用 Microsoft Access
创建一个数据库 Student.mdb,其中包含两个表 xs 和 zy,如下表所示:
表 1: 学生表(xs)及其表结构
学号(stuid) 姓名(name) 性别(sex) 专业代号(profcode)
990101 李林 男 102001
990102 高山 男 102001
990201 王平 男 109003
990202 丁玲 女 109003
续表 1:
序号 字段名称 数据类型 字段大小 小数位 字段含义
1 stuid 文本 6 学号
2 name 文本 8 姓名
3 sex 文本 2 性别
4 profcode 文本 6 专业代号
表 2:专业代码表(zy)及其表结构
专业代号(profcode) 专业名称(profname) 学制(stuyears)
102001 计算机科学与技术 4
102002 计算机软件技术 3
102003 计算机网络技术 3
102004 计算机软件工程 4
109003 计算机网络工程 4
续表 2:
序号 字段名称 数据类型 字段大小 小数位 字段含义
1 profcode 文本 6 专业代号
2 profname 文本 12 专业名称
3 stuyears 数字 整型 自动 学制
下面我们开始用 Access2003 设计数据库:
( 1 ) 开 机 正常 屏 幕 状态 开 始 程 序 Microsoft OfficeMicrosoft Office
Access 2003新建文件空数据库文件名处写:student点右边的创建新
建设计视图确定出现表,你按上面的续表 1 即下面数据敲入即可:
字段名称 数据类型 (在下面改变)字段大小 说明
stuid 文本 6 学号
name 文本 8 姓名
sex 文本 2 性别
profcode 文本 6 专业代号
(2)关闭此表提问:你是否保存对表 1 的设计更改?是表名写 xs是
便在数据库中建立了表 xs
(3)你双击 xs 出现设计视图表,之后你按上面的表 1 即下面的数据敲进去
学号 姓名 性别 专业代号
990101 李林 男 102001
990102 高山 男 102001
990201 王平 男 109003
990202 丁玲 女 109003
(4)接着你再点本界面上面的菜单新建设计视图确定,重复(2)步骤再
建表 zy
敲入续表 2 即下面数据:
字段名称 数据类型 (在下面改变)字段大小 说明
profcode 文本 6 专业代号
profname 文本 12 专业名称
stuyears 文本 整型 学制
(5)你双击 zy 出现设计视图表,之后你按表 2 即下面的数据敲进去
专业代号 专业名称 学制
102001 计算机科学 4
102002 计算机软件技术 3
102003 计算机网络技术 3
102004 计算机软件工程 4
109003 计算机网络工程 4
2、创建 ODBC 的数据源
用户安装 Visual C++的同时也会装上 ODBC 程序,但它不是出现在 Visual C++
程序组中,而是出现在系统的“控制面板”中,如书 336 页图 8.1 所示。
桌面左下角开始设置 控制面板性能和维护->管理工具双击
ODBC 图标,进入 ODBC 数据源管理器,在这里用户可以设置 ODBC 数据源的
一些信息,其中的“用户 DNS”页面是用户定义自己在本地计算机使用的数据源
名(DNS)如书 336 页图 8.2 所示。
(1)单击[添加]按钮,弹出有一驱动程序列表的“创建新数据源”对话框,如书
336 页图 8.3 所示
(2)在该对话框中选择要添加用户数据源的驱动程序,这里选择“ Microsoft
Access Driver”。单击[完成]按钮,进入特定驱动程序的安装对话框。
(3)在对话框中,单击[选取]按钮将前面创建的数据库 student 调入,见下图所
示。
(4)单击[确定]按钮,给刚才创建的用户数据源起名“Database Exmple For VC+
+”写在数据源名处,见书 337 页图 8.4 所示,单击[确定]便使其添加在“ODBC 数
据源管理器”的“用户数据源”列表中,如书 337 页图 8.5 所示。
3、在 MFC AppWizard 中选择数据源
用 MFC AppWizard(exe)可以很容易地创建一个支持数据库的 SDI/MDI 的应用
程序,过程如下:
(1)用 MFC AppWizard(exe)创建一个单文档应用程序:数据库
(2)在向导的第 2 步对话框中加入数据库的支持,如书 337 页图 8.6 所示。在
该对话框中用户可以选择对数据库支持程序,其中各选项的区别如书表 8.2 所
示。
(3)选中“数据库查看使用文件支持 Database view with file support”项,单击[Data
Source]按钮,弹出“Database Options”对话框,如书 338 页图 8.7 所示。
(4)从中选择你刚才起好名的 ODBC 的数据源“Database Example For VC++”,
单击[OK]按钮,弹出如书 338 页图 8.8 所示的“Select Database Table”对话框,从
中选择要使用的表(选择 xs 我们建的表名和书上的表名不一样)。
(5)单击[OK]按钮,又回到了向导的第 2 步对话框,保留默认设置,单击
[Finish]按钮。
(6)编译运行结果如书 339 页图 8.9 所示。
说明:MFC AppWizard 创建的“数据库”应用程序与一般默认的单文档应用
程序相比较,在类结构方面,有如下几点不同:
1)添加了一个 CMySet 类,它与上述过程中所选择的数据表 xs 进行数据绑
定,也就是说,CMySet 对象的操作实质上对数据表进行操作。
2)将 CMyView 类的基类设置成 CRecordView,由于 CRecordView 的基类
是 CFormView,因此它需要与之相关联的表单资源。
3)在 CMyView 类中添加了一个全局的 CMySet 对象指针变量 m_pSet,目
的是在表单视图和记录集之间建立联系,使得记录集中的查询结果能够很容易
地在表单视图上显示出来。
4、设计浏览记录界面
在“数据库”应用程序中,MFC 为用户自动创建了用于浏览数据表记录的工
具按钮和相应的“记录”选单项。若用户选择这些浏览记录命令,系统会自动调
用相应的函数来移动数据库表的当前位置。若在表单视图 CMyView 中添加控件
并与表的字段相关联,就可以根据表的当前记录位置显示相应的数据。
(1)打开“数据库”应用程序
( 2 ) 切 换 到 项 目 工 作 区 窗 口 的 ResourceView 页 面 , 双 击 用 于 表 单 视 图
CMyView 的对话框资源 IDD_MY_FORM.
(3)参看下图 1 向对话框中添加下列控件:
控 件 ID 号 标 题 属 性
组框 默认 学生表 默认
静态文本 默认 学号: ..
编辑框 IDC_STU_ID …… ..
静态文本 默认 姓名: ..
编辑框 IDC_STU_NAME … ..
静态文本 默认 性别 ..
编辑框 IDC_STU_SEX … ..
静态文本 默认 专业代号 ..
编辑框 IDC_PROF_CODE ….. ....
图 1:控件的设计
(4)加数据成员:选择“View”选单->“Class Wizard”命令或按快捷键 Ctrl+W,
剩余30页未读,继续阅读
资源评论
- hanqi03232011-11-08无啥用啊,都是太笼统的东西!
tqrrwqqry
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功