ImageVerifierCode 换一换
格式:PPT , 页数:9 ,大小:303KB ,
资源ID:1235386      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1235386.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MFC数据库编程及其应用.PPT)为本站会员(国***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

MFC数据库编程及其应用.PPT

1、第 7章 MFC数据库编程及其应用 l重点1.数据库系统和 ODBC2.CRecordSet的应用3.示例系统中数据库操作类的设计2010年 10月 1重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋7.1 数据库系统的基本概念 数据库系统由数据库、数据库管理系统和数据库应用系统 3部分组成,如右图: 数据库是数据的集合,由一个或多个表组成,一般将表中的一行称作记录 (record)或行 (row),将表的列称作字段 (field)或列 (column);数据库应用程序是在数据库管理系统 (DBMS)的支持下对数据库中的数据进行加工、处理的程序, MFC提供了两种支持: ODBC和 D

2、AO。数据库系统的组成 数据库管理系统是一套程序,用来定义、管理和处理数据库与应用程序之间的联系,例如, FoxPro、 Access等; 不同的数据库在实现它的数据库管理系统时都有一些不同的特性,因而使得用某个数据库管理系统开发的数据库应用系统无法在其他数据库管理系统上使用; 为了使一个数据库应用系统能够适用于所有的数据库管理系统,人们在数据库应用系统和数据库管理系统之间增加了一个符合某种规范的标准接口,从而使得按照标准接口设计的数据库应用系统可以访问所有支持标准接口的数据库管理系统。常用的标准接口有 ODBC、 DAO、 JDBC等,他们之间的关系如图所示: SQL(Structured

3、Query Language,结构化查询语言 )最早由 IBM提出,是专门用来处理关系数据库的基于文本的语言。 SQL向数据库提供了完善而一致的接口,它不是独立的计算机语言,需要 DBMS的支持才能执行。 SQL是一种标准的数据库语言,目前大多数DBMS都支持它。2010年 10月 2重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋7.2 ODBC基本概念 ODBC是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准 API。这些 API利用 SQL来完成大部分任务, ODBC本身也提供了对 SQL语言的支持,用户可以直接将 SQL语句送给

4、 ODBC; 基于 ODBC的应用程序对数据库的操作不依赖于任何 DBMS,不直接与 DBMS打交道,所有的数据库操作由对应 DBMS的 ODBC驱动程序完成,一个完整的 ODBC由下列几个部件组成; 应用程序: ODBC管理器:管理安装的 ODBC驱动程序和管理数据源; 驱动程序管理器:包含在 ODBC32.DLL中,任务是管理 ODBC驱动程序; ODBC API:给数据库应用程序提供访问数据库的接口函数; ODBC驱动程序:一些 DLL,提供了 ODBC和数据库之间的接口; 数据源:包含数据库位置和数据库类型的信息。 在 ODBC中, ODBC API不能直接访问数据库,必须通过驱动程序

5、管理器与数据库交换信息。驱动程序管理器负责将应用程序对 ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。ODBC部件关系图2010年 10月 3重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋7.3 MFC的 ODBC类简介 MFC的 ODBC类主要包括有以下几个: CDatabase类:负责建立与数据源的连接; CRecordset类: 该类的一个对象代表从数据源选择的一组记录(记录集); CRecordView类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交换机制 (DDX)在记录集与表单视图的控件之间

6、传输数据; CFieldExchange类:支持记录字段数据交换 (DFX),即记录集字段数据成员与相应的数据库表的字段之间的数据交换; CDBException类:代表 ODBC产生的异常。 概括地讲, CDatabase针对某个数据库,它负责连接数据源; CRecordset针对数据源中的记录集,它负责对记录的操作; CRecordView负责界面; CFieldExchange负责 CRecordset与数据源的数据交换。2010年 10月 4重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋 先构造一个 CDatabase对象,然后调用 Open成员函数: lpszDSN:数据源

7、名,也可以在 lpszConnect参数中包括数据源名,此时lpszDSN必须为 NULL,若两处均未提供数据源名,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源; 参数 bExclusive:说明是否独占数据源; 参数 bReadOnly: True则对数据源的连接是只读的,否则为可读写的; 参数 lpszConnect:指定了一个连接字符串。该串中可以包括数据源名、用户账号和口令等信息,字符串中的 ODBC表示要连接到一个 ODBC数据源上; 参数 bUseCursorLib:若为 True,则会装载光标库,否则不装载。快照需要光标库,动态集不需要光标库; 若连接成功,函数返

8、回 True,否则返回 False,若函数内部出现错误,则会产生一个异常。 一些其它的有用成员函数:virtual BOOL Open(LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC;“, BOOL bUseCursorLib = TRUE);throw(CDBException, CMemoryException);CDatabase m_db;/在文档类中嵌入一个 CDatabase对象m_db.Open(“Student Registration“)

9、; /连接到一个名为 Student Registration的数据源m_db.Open(NULL,FALSE,FALSE,“ODBC;DSN=Student Registration;UID = ZYF;PWD = 1234“); /在连接数据源的同时指定了用户账号和口令m_db.Open(NULL);/将弹出一个数据源对话框virtual void Close();/断开与数据库的连接, CDatabase的析构函数中同样会自动调用该函数BOOL IsOpen() const;/返回 True则表明当前有一个连接const CString/获取当前的连接字符串7.3.1 CDatabase

10、类2010年 10月 5重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋1. 动态集、快照、光标和光标库 共享数据的一个主要问题就是如何协调各个用户对数据源的修改,在MFC中这取决于用户采用哪种记录集来处理; 记录集主要分为快照 (Snapshot)和动态集 (Dynaset)两种: 快照型记录集提供了对数据的静态视,当其他用户改变了记录时 (包括修改、添加和删除 ),快照中的记录不受影响; 动态集提供了数据的动态视,当其他用户修改或删除了记录集中的记录时,会在动态集中反映出来。 在记录集中滚动,需要有一个标志来指明滚动后的位置。 ODBC驱动程序会维护一个光标,用来跟踪记录集的当前记

11、录; 光标库是处于 ODBC驱动程序管理器和驱动程序之间的动态链接库。光标库的主要功能是支持快照以及为底层驱动程序提供双向滚动能力。光标库管理快照记录的缓冲区,该缓冲区反映本程序对记录的修改和删除,但不反映其他用户对记录的改变,由此可见,快照实际上相当于当前的光标库缓冲区; 与快照不同,动态集不用光标库维持的缓冲区来存放记录。7.3.2 CRecordSet类2010年 10月 6重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋2. SQL查询 记录集的建立实际上是一个查询过程, SQL的 SELECT语句用来查询数据源。在建立记录集时, CRecordset会根据参数构造一个 SEL

12、ECT语句来查询数据源,并用查询的结果创建记录集, SELECT语句的句法如下: 如果列名或表名中包含有空格,则必须用方括号把该名称括起来;SELECT field-list FROM table-name WHERE m_strFilter ORDER BY m_strSort 3. 记录集的建立和关闭 要建立记录集,首先要构造一个 CRecordset派生类对象,然后调用 Open成员函数查询数据源中的记录来建立记录集CRecordset(CDatabase* pDatabase = NULL); virtual CString GetDefaultConnect(); virtual B

13、OOL Open(UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, DWORD dwOptions = none);throw(CDBException, CMemoryException); BOOL CanRestart() const;/若支持 Requery则返回 TrueBOOL IsOpen() const;/若记录集已建立则返回 True2010年 10月 7重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋4. 滚动记录 CRecordset提供了以下所示几个成员函数用来在记录集中滚动: v

14、oid MoveNext();/前进一个记录void MovePrev();/后退一个记录void MoveFirst();/滚动到记录集中的第一个记录void MoveLast();/滚动到记录集中的最后一个记录void SetAbsolutePosition(long nRows);/滚动到绝对位置virtual void Move(long nRows, WORD wFetchType = SQL_FETCH_RELATIVE);BOOL IsEOF() const; BOOL IsBOF() const; long GetRecordCount( ) const; 5. 修改、添加和删除记录 通过向 CDatabase对象的 ExecuteSQL成员函数传递 SQL语句的方法达到修改、添加和删除数据库数据的目的 void ExecuteSQL(LPCSTR lpszSQL); throw(CDBException); 2010年 10月 8重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋7.4 实例系统中数据库操作类的设计 参见实验。2010年 10月 9重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。