- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2010年10月 重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋 * 第7章 MFC数据库编程及其应用 重点 1.数据库系统和ODBC 2.CRecordSet的应用 3.示例系统中数据库操作类的设计 7.1 数据库系统的基本概念 数据库系统由数据库、数据库管理系统和数据库应用系统3部分组成,如右图: 数据库是数据的集合,由一个或多个表组成,一般将表中的一行称作记录(record)或行(row),将表的列称作字段(field)或列(column); 数据库应用程序是在数据库管理系统(DBMS)的支持下对数据库中的数据进行加工、处理的程序,MFC提供了两种支持:ODBC和DAO。 数据库系统的组成 数据库管理系统是一套程序,用来定义、管理和处理数据库与应用程序之间的联系,例如,FoxPro、Access等; 不同的数据库在实现它的数据库管理系统时都有一些不同的特性,因而使得用某个数据库管理系统开发的数据库应用系统无法在其他数据库管理系统上使用; 为了使一个数据库应用系统能够适用于所有的数据库管理系统,人们在数据库应用系统和数据库管理系统之间增加了一个符合某种规范的标准接口,从而使得按照标准接口设计的数据库应用系统可以访问所有支持标准接口的数据库管理系统。常用的标准接口有ODBC、DAO、JDBC等,他们之间的关系如图所示: SQL(Structured Query Language,结构化查询语言)最早由IBM提出,是专门用来处理关系数据库的基于文本的语言。SQL向数据库提供了完善而一致的接口,它不是独立的计算机语言,需要DBMS的支持才能执行。SQL是一种标准的数据库语言,目前大多数DBMS都支持它。 7.2 ODBC基本概念 ODBC是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。这些API利用SQL来完成大部分任务,ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC; 基于ODBC的应用程序对数据库的操作不依赖于任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应DBMS的ODBC驱动程序完成,一个完整的ODBC由下列几个部件组成; 应用程序: ODBC管理器:管理安装的ODBC驱动程序和管理数据源; 驱动程序管理器:包含在ODBC32.DLL中,任务是管理ODBC驱动程序; ODBC API:给数据库应用程序提供访问数据库的接口函数; ODBC驱动程序:一些DLL,提供了ODBC和数据库之间的接口; 数据源:包含数据库位置和数据库类型的信息。 在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。 ODBC部件关系图 7.3 MFC的ODBC类简介 MFC的ODBC类主要包括有以下几个: CDatabase类:负责建立与数据源的连接; ?CRecordset类: 该类的一个对象代表从数据源选择的一组记录(记录集); ?CRecordView类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交换机制(DDX)在记录集与表单视图的控件之间传输数据; CFieldExchange类:支持记录字段数据交换(DFX),即记录集字段数据成员与相应的数据库表的字段之间的数据交换; CDBException类:代表ODBC产生的异常。 概括地讲,CDatabase针对某个数据库,它负责连接数据源;CRecordset针对数据源中的记录集,它负责对记录的操作;CRecordView负责界面;CFieldExchange负责CRecordset与数据源的数据交换。 先构造一个CDatabase对象,然后调用Open成员函数: lpszDSN:数据源名,也可以在lpszConnect参数中包括数据源名,此时lpszDSN必须为NULL,若两处均未提供数据源名,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源; 参数bExclusive:说明是否独占数据源; 参数bReadOnly:True则对数据源的连接是只读的,否则为可读写的; 参数lpszConnect:指定了一个连接字符串。该串中可以包括数据源名、用户账号和口令等信息,字符串中的ODBC表示要连接到一个ODBC数据源上; 参数bUseCursorLib:若为True,则会装载光标库,否则不装载。快照需要光标库,动态集不需要光标库; 若连接成功,函数返回True,否则返回False,若函数内部出现错误,则会产生一个异常。 一些其它的有用成员函数: virtual BOO
文档评论(0)