轻松学章数据库编程.pptx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第22章数据库编程数据库技术已经成为目前计算机应用中的一个重要组成部分。数据库技术给数据存储和访问带来了巨大的便利,同时数据库技术也推动了软件业的发展,使软件系统应用到了企业级的数据事务处理上。数据库编程已经成为了软件设计中的重要内容,通过本章的学习,读者需要了解不同的数据库编程方式,掌握VisualC++的数据库编程的基本方法。

22.1概述数据库主要给用户提供进行有效的数据存储、访问和处理的工具。数据库系统则是包括数据库及其相关的管理系统的集合。C++支持多种方式的数据库访问技术。

22.1.1数据库和数据库系统文件也是存储数据方式,但是文件相比数据库缺少数据处理和有效的管理方式。相比文件系统,数据库更有优势,它是一种更有效的数据集成方式。数据库的优势主要表现在以下几个方面。数据库中的数据在结构上具有高度的关系化。数据库系统的共享性更高。数据库系统具有更好的独立性。文件系统缺乏自身的管理机制,而数据库则能进行自身的管理机制。数据库系统具有很强的数据安全机制和维护措施。数据库是一个非常复杂的系统,需要进行一系列数据方面的管理。这需要一整套软件来进行相应的控制和管理,完成这个任务的管理系统就是数据库管理系统(DataBaseManagementSystem,简称DBMS)。

22.1.2常见数据库访问技术通过对数据库服务器和客户端的通信过程的抽象化,可以简化客户端访问数据库的过程,如图22-1所示。客户端的代码通过调用数据库接口,数据接口再调用数据库代码来完成对数据库的访问和操作,然后将数据传递给客户端。目前数据库提供商都会提供通用访问接口。

目前Windows系统上常见的数据库接口有以下几种。ODBC(开放数据库互连)。DAO(数据访问对象)。RDO(远程数据对象)。OLEDB(对象链接嵌入数据库)。ADO(ActiveX数据对象)。

22.2数据访问接口ODBCODBC(OpenDatabaseConnectivity,开放式数据库互连)是一种通用的数据库访问接口,它提供了一系列不依赖数据库类型的API。只要数据库系统具有ODBC驱动程序,就可以利用ODBC技术来进行访问和操作数据库。

22.2.1ODBC概述ODBC是一种关系型数据库统一访问接口,目前已经被广泛地应用。一个完整的ODBC包括以下几个部分。如图22-3所示是ODBC体系结构。

22.2.2ODBCAPI编程使用ODBCAPI操作数据库的一般步骤如下。(1)创建环境句柄和连接句柄,并连接数据源。(2)创建执行SQL语句句柄。(3)准备并执行SQL语句。(4)获取并处理结果集。(5)提交事务。(6)断开数据源连接并释放相关句柄。

ODBCAPI根据安装的ODBC程序略有不同,这里以ODBC2.X版为基础来进行介绍。下面详细分析每一个步骤。1.创建环境句柄和连接句柄,并连接数据源2.创建执行SQL语句句柄3.准备并执行SQL语句4.获取并处理结果集5.提交事务6.断开数据源连接并释放相关句柄

22.3MFC的ODBC编程MFC对ODBCAPI进行了封装,相关的类主要是CDatabase和CRecordset。一个CDatabase对象表示一个数据库的连接,而CRecordset则用来操作查询的数据集。通过这两个类可以较为方便地访问数据库。

22.3.1CDatabase和CRecordset类介绍CDatabase类和CRecordset类的声明存放在头文件afxdb.h中,要使用这两个类需要包含头文件afxdb.h。另外,只能在MFC程序中使用这两个类。

22.3.2数据查询CRecordset类的成员函数Open()和Requery()都可以实现记录查询的功能。Open()函数用于获得有效的记录集;Requery()函数提供再次查询功能(在使用Open()函数后才能使用Requery()函数)。

22.3.3参数化数据查询大部分实际应用中的数据查询都需要用参数化查询,即查询条件是不定的,是程序实时运行时决定的,这就需要用参数化来构造查询语句,并给m_strFilter变量赋值。

22.3.4新建数据新建数据库是调用AddNew()成员函数实现的。当调用此成员函数后,会在记录集中增加一行数据,之后需要对字段的内容进行填充。需要注意的是,对字段进行设值时,数据和字段类型要相符,否则将可能设值失败。

22.3.5数据删除数据的删除是调用Delete()成员函数实现的。当调用此成员函数时,所删除的是当前游标所在的数据行。删除数据后,不需要再调用Update()成员函数,数据会从记录集和数据库中直接被删除。

22.3.6数据更新更新数据是调用Edit()成员函数实现的。更

文档评论(0)

cra12138 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档