visual c++实用教程 第14章:利用ado组件访问数据库.ppt

上传人:s****8 文档编号:69356274 上传时间:2023-01-02 格式:PPT 页数:56 大小:742KB
返回 下载 相关 举报
visual c++实用教程 第14章:利用ado组件访问数据库.ppt_第1页
第1页 / 共56页
visual c++实用教程 第14章:利用ado组件访问数据库.ppt_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《visual c++实用教程 第14章:利用ado组件访问数据库.ppt》由会员分享,可在线阅读,更多相关《visual c++实用教程 第14章:利用ado组件访问数据库.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Visual C+Visual C+第第1414章章 利用利用ADOADO组件访问数库组件访问数库 教学要点 本章内容主要包括数据库应用程序的一些概念,ADO中的数据对象,利用Access建立数据库,ADO控件和ADO对象的使用。要求了解ActiveX控件和COM组件的概念,熟悉利用Access创建数据库的方法,掌握利用ADO控件和ADO对象访问数据库的方法,熟练掌握利用MSDN了解ADO的各种对象的使用。1Visual C+Visual C+利用利用ADOADO组件访问数库目录组件访问数库目录本章目录14.1ADO简介14.2常用的ADO的对象14.3使用Access2000创建数据库14.

2、4创建ADO数据库访问程序习题2Visual C+Visual C+14.114.1ADOADO简介简介本节内容:14.1.1 ADO概述14.1.2 ADO访问数据库的优越性这一篇主要讲组件的开发和使用,在上一章中,我们创建了一个.DLL动态链接库,动态链接库其实也是一种组件,这种组件主要使用在各种桌面应用程序中。这一章我们要介绍另一种组件的使用,在数据库应用程序中的使用。利用ADO技术来访问访问数据库,其实就是利用访问数据库的一些组件来间接地访问数据库。3Visual C+Visual C+14.1.114.1.1ADOADO概述概述 ADO(ActiveXDataObject,Activ

3、eX数据对象),是Microsoft推出的较新的数据访问技术,它提供了简单易用的访问各种数据资源,包括关系型和非关系型数据库的高效手段。除了面向VC外,还提供了面向其它各种开发工具的应用,如VB,VJ等。ADO应用的场合很多,特别是在服务器应用方面。例如用于动态服务器页面ASP(ActiveServerPage)中连接运行在IIS服务器上的数据库,用于VB应用程序与数据库服务器的连接等。4Visual C+Visual C+14.1.214.1.2ADOADO访问数据库的优越性访问数据库的优越性ADO是一种高层数据访问接口,具有面向对象的特点。使用ADO访问数据库,主要是使用ADO的各种对象进

4、行访问,它易使用、速度快、内存支出少,其最大好处是在因特网上访问数据库的高效性。因为ADO在关键的因特网中使用了最少的网络流量,并且在客户端和数据库服务端使用了最少的层数。可以说,ADO为桌面或因特网上的数据库访问提供了一种轻量级的高性能接口。5Visual C+Visual C+14.2 14.2 常用的常用的ADOADO的对象的对象 本节内容:14.2.1 连接对象14.2.2 命令对象14.2.3 记录集对象14.2.4 字段对象14.2.5 参数对象 由于ADO具有面向对象的特点,利用ADO技术来访问访问数据库,其实就是利用ADO的对象来操纵数据库,首先我们要熟悉这些对象。6Visua

5、l C+Visual C+14.2.1 14.2.1 连接对象连接对象 连接(Connection)对象是用来与数据库建立连接、执行查询以及进行事务处理。在连接之前必须指定使用哪一个OLEDB供应者。7Visual C+Visual C+14.2.214.2.2命令对象命令对象 命令对象(Command)可以执行数据库操作命令(例如查询、修改、插入和删除等)。用命令对象执行一个查询子串,可以返回一个记录集合。8Visual C+Visual C+14.2.314.2.3记录集对象记录集对象 记录集(Recordset)对象用来查询返回的结果集,它可以在结果集中添加、删除、修改和移动记录。当创建

6、了一个记录集对象时,一个游标也就自动创建了,查询所产生的记录将放在本地的游标中。游标类型有四种:仅能向前移动的游标、静态游标、键集游标和动态游标。记录集(Recordset)对象是对数据库进行查询和修改的主要对象。9Visual C+Visual C+14.2.414.2.4字段对象字段对象 字段是用于表示记录集中的列信息,包括列值等信息。一个记录集包含了数据库表中的若干行记录。如果将记录集看作二维网格,字段则将排列构成“列”。每一字段(列)分别包括有名称、数据类型和值的属性,在字段中包含了来自数据源的真实数据。要修改数据源中的数据,可在记录集中修改Field对象的值,对记录集的更改最终被传送

7、给数据源。10Visual C+Visual C+14.2.514.2.5参数对象参数对象 参数(Parameter)对象是和命令对象联用的。当命令对象执行的查询是一个带参数的查询时(例如想要查询考试成绩大于nGrade的学生,其中nGrade就是一个查询参数,它是一个整型变量,它的值可以动态改变),就靠参数对象来为命令对象提供参数信息和数据。11Visual C+Visual C+14.3 14.3 使用使用Access 2000Access 2000创建数据库创建数据库本节内容:14.3.1 Access2000数据库结构14.3.2 创建一个空数据库14.3.3 创建数据库表Access

8、2000是MicrosoftOffice套件的一个组件,是一个桌面型、小型的数据库管理系统。使用Access2000管理数据库,并不需要管理者具有专业的程序设计能力,仅通过简单而又直观的可视化操作就可以完成大部分的管理任务,设计出功能强大的数据库系统。12Visual C+Visual C+14.3.114.3.1Access2000Access2000数据库结构数据库结构 Access2000是一个面向对象的、采用事件驱动机制的关系型数据库。在Access2000的数据库中,任何事物都可以称之为对象。Access2000数据库中包含七个对象:表、查询、窗体、报表、数据访问页、宏和模块。这些对

9、象用于收集、存储和操作各种不同的信息,每种对象都不能独立保存,而只能作为Access数据库的一部分。利用ADO访问Access数据库,主要是访问数据库中的表对象,表是存放数据的真正场所。13Visual C+Visual C+14.3.214.3.2创建一个空数据库创建一个空数据库 启动Access2000软件后,将在屏幕上出现图14.1所示的一个对话框,它是一个起着向导作用的对话框,用于引导用户完成建立数据库文件的操作。我们选择“空Access数据库选项”,单击“确定”按钮后出现图14.2所示的选择数据库存放位置和名称的对话框。在文件名编辑框中输入“student”后,单击“创建”,就在指定

10、的目录中 创 建 了 一 个 Access2000数 据 库 文 件student.mdb,并且出现图14.3所示的数据库向导界面。14Visual C+Visual C+图14.1使用数据库向导创建数据库图14.2指定创建的数据库的路径和名称 返回15Visual C+Visual C+14.3.314.3.3创建数据库表创建数据库表 数据库创建以后,紧接着在其中创建存放数据的表。在图14.3所示的student.mdb数据库窗口中,单击数据库对象中的“表”按钮,打开“表”对象列表窗口。选择“使用设计器创建表”选项,然后单击数据库窗口的“设计”按钮,即可打开表设计窗口。或者双击“使用设计器创

11、建表”这个选项,然后打开用来创建表的对话框,如图14.4所示。在其中输入学生的一些属性,如:学号、姓名、地址、出生日期、四级成绩、VC成绩。各个字段的属性如图14.4所示。当关闭表设计窗口时,系统提示用户给所建的表起一个名字保存,我们所起的名称为stud_info。16Visual C+Visual C+图14.3数据库窗口图14.4表设计窗口返回14.3.3 返回14.3.217Visual C+Visual C+14.4 14.4 创建创建ADOADO数据库访问程序数据库访问程序本节内容本节内容14.4.1利用ADO技术访问数据库的两种方式14.4.2采用ADO控件访问数据库14.4.3采

12、用ADO对象操作数据库14.4.4一个使用ADO对象访问数据库的实例18Visual C+Visual C+14.4.114.4.1利用利用ADOADO技术访问技术访问数据库的两种方式数据库的两种方式 1.采用采用ActiveX控件访问数据库控件访问数据库ActiveX控件是可执行组件,设计它们的目的是将其嵌入窗口或Web页中来实现一些完备的功能。对于用户来讲,它们与普通的Windows控件十分相似,ActiveX控件过去被称作OLE控件,其开发基于组件对象模型(ComponentObjectModel,COM),它可以嵌入到对话框或其它的ActiveX控件容器,如InternetExplor

13、er和VisualBasic应用程序中使用。更专业一点说,ActiveX控件是这样的一个基于COM的对象:它可以在自己的窗口内绘制自身,可以响应鼠标或键盘之类的操作事件。最重要的一点,使用ActiveX控件的应用程序可以通过该控件所包括的一系列的属性和方法(合起来称作接口)来操作该控件的行为。19Visual C+Visual C+利用利用ADOADO技术访问数据库的技术访问数据库的两种方式(两种方式(续)ActiveX控件并不仅仅限于与用户的可视交互,它还可以用于其它用途,如访问数据库、监视数据等。ActiveX控件所能提供的功能要远远超过自定义控件的能力,这些能力包括很多新鲜而有趣的特性,

14、比如将控件本身所提供的菜单嵌入到容器的菜单中等。ActiveX控件一般以.OCX文件的形式提供,并在系统中进行注册。采用ADO控件来访问数据库,极大地简化了数据库应用程序的开发,用户只需写相对较少的代码,甚至不写一行代码,就可以实现对数据库的访问。但是该方法的效率比较低,用户对程序的控制比较弱,不能完全发挥ADO访问数据库的优良特性。20Visual C+Visual C+利用利用ADOADO技术访问数据库的技术访问数据库的两种方式(续)两种方式(续)2采用采用ADO对象访问数据库对象访问数据库ADO技术是基于COM的,因此可以提供多种语言的支持,ADO提供了丰富的层次对象,使用ADO中的各种

15、对象,我们可以非常灵活地控制应用程序的细节,而且效率、性能很高,可以充分发挥ADO特性。除了14.2节的内容,ADO的对象模型还包括表14.1所示的对象。21Visual C+Visual C+利用利用ADOADO技术访问数据库的技术访问数据库的两种方式(续)两种方式(续)ADO中的对象对象的描述Connection描述一个到数据源的唯一会话。在客户/服务器的数据库系统中,它相当于一个到服务器端数据库的实际连接。Connection的一些集合、方法、属性依赖于具体的数据源类型。Command用于描述一个传送给数据源的命令,比如SQL查询Recordset描述一个完整的记录集,可以是来自一个数据

16、表或是一个SQL命令的返回结果Record描述一个单个的记录行Stream描述一个二进制的数据流或一个文本文件。例如一个流对象可以装载一个XML文档作为一个命令输入,或是一个查询返回的结果集。一个流对象可以对它所包含的字段集或记录进行操纵。Parameter代表一个关联到一个Command对象的参数,该Command对象是一个参数化的查询或是带参数的存储过程Field字段对象,对应记录集的一列Property用于描述一个ADO对象的一些特征信息Error可能发生错误的详细信息Fields字段Field的集合Properties属性的集合Parameters参数的集合Errors错误的集合表表1

17、4.1 14.1 ADOADO的对象模型的对象模型 returnreturn22Visual C+Visual C+14.4.214.4.2采用采用ADOADO控件访问数据库控件访问数据库 【例14-1】创创建建一一个个利利用用ADOADO控控件件访访问问数数据据库库的的MFCMFC应用程序。应用程序。1创建工程框架用AppWizard向导创建一个基于对话框的应用程序,该工程的名称为MyADO。2在工程中插入ADO控件ADO控件包括两个:一个是ADOData控件,用于操纵数据,另一个是ADODataGrid控件,用于显示数据。两者的关系类似于文档/视图结构中的文档与视图。由于ADO控件是Act

18、iveX控件,而不是VC的控件,它们都不像编辑框、列表框控件那样在Control工具栏中。如果要使用ActiveX控件,在使用之前必须将它们添加到工程中。23Visual C+Visual C+采用采用ADOADO控件访问数据库控件访问数据库(续)(续)下面讲解往VC工程中导入ADOData控件和DataGrid控件的步骤:(1)打开对话框资源“IDD_MYADO_DIALOG”,删除默认的静态文本控件,在对话框窗口上单击鼠标右键,在弹出式菜单中选择“InsertActiveXControl”,将弹出图14.5所示的对话框,在其中选择“Microsoft ADO Data Control,Ve

19、rsion6.0”选项。单击“OK”按钮,则在对话框窗体上插入了ADOData控件。(2)用同样的方法,在图14.5中选择“MicrosoftDataGridControl,Version6.0”选项。单击“OK”按钮,则完成了插入DataGrid控件的操作。24Visual C+Visual C+采用采用ADOADO控件访问数据库控件访问数据库(续)(续)图图14.5 插入插入ADO Data控件对话框图控件对话框图 图图14.6 插入插入ADO 控件后的控件后的 对话对话框框 返回25Visual C+Visual C+采用采用ADOADO控件访问数据库控件访问数据库(续)(续)3设置AD

20、OData控件属性ADO控件的属性设置和VC中的其它控件(如编辑框控件)的方法一样,先用鼠标选中该控件,然后按Alt+Enter键,就会弹出属性对话框,在属性对话框中对相应属性进行设置。(1)打开ADO Data控件属性对话框,选择“control”选项卡,如图14.7所示。在该对话框中,先选择“UseConnectionString”,然后单击“Build”按钮,弹出如图14.8所示的对话框。(2)在图14.8中,选择“MicrosoftJet40OLEDBProvider”列表项,然后单击“下一步”按钮,弹出图14.9所示的选择数据库的对话框。26Visual C+Visual C+采用采

21、用ADOADO控件访问数据库控件访问数据库(续)(续)图14.7ADOData属性对话框 返回27Visual C+Visual C+采用采用ADOADO控件访问数据库控件访问数据库(续)(续)图14.8数据库连接属性对话框 返回28Visual C+Visual C+采用采用ADOADO控件访问数据库控件访问数据库(续)(续)(3)在图14.9对话框中,单击“选择或输入数据库名 称”编 辑 框 右 边 的“”按钮,把前面所建立 的 学 生 数 据 库student.mdb选上。单击“测试连接”按钮,如连接成功则会给出提示信息。最后单击“确定”按钮关闭对话框。至此,数据连接已经建立好了,下面步

22、骤是选择数据源中的数据,即进行数据集的选择。返回29Visual C+Visual C+采用采用ADOADO控件访问数据库控件访问数据库(续)(续)(4)再次打开ADOData控件的属性对话框,选择“RecordSource”选项卡,出现如图14.10所示的对话框。在“CommandType”列表框中选择“2-adCmdTable”列表项,在“TableOrStoredProcedureName”组合框中把学生成绩数据库student.mdb的表“stud_info”选择上。关闭对话框完成ADOData控件的属性的设置。图14.10 设置数据源选项对话框30Visual C+Visual C+

23、采用采用ADOADO控件访问数据库控件访问数据库(续)(续)4设置ADODataGrid控件的属性先用鼠标选中ADODataGrid控件,然后按鼠标右键,在弹出式菜单中选择“Properties”后,就会弹出属性对话框,在其中对该控件的属性进行设置。31Visual C+Visual C+采用采用ADOADO控件访问数据库控件访问数据库(续)(续)(1)打开ADODataGrid控件的属性对话框,选择“control”选项卡,如图14.11所示。在该对 话 框 中,选 中“AllowAddNew”和“AllowDelete”复选框。32Visual C+Visual C+采用采用ADOADO控

24、件访问数据库控件访问数据库(续)(续)(2)再选择“All”选项卡,弹出如图14.12所示的对话框。在该对话框中,单击“DataSource”列表项右边的“Value”下拉列表按钮。从下拉的列表中选择ADOData控件的ID(IDC_ADODC1)。然后关闭属性对话框。图14.12 DataGrid控件的All33Visual C+Visual C+采用采用ADOADO控件访问数据库控件访问数据库(续)(续)5运行含有ADO控件的程序编译并运行上述工程,其运行界面为图14.13。在该程序的创建工程中,我们没有编写一行代码,但该程序已经有了浏览、增加、修改与删除记录的功能了。图14.13利用AD

25、O控件对数据库进行操作34Visual C+Visual C+14.4.314.4.3采用采用ADOADO对象操作数据库对象操作数据库 我们知道,采用OLEDB标准的API是C+API,只能供C+调用,为了使各种流行的编程语言都可以编写符合OLEDB标准的应用程序,Microsoft在OLEDBAPI之上,提供了一种面向对象、与语言无关的应用程序编写接口,这就是ADO。ADO技术简化了OLEDB操作,它封装了其接口,是一种高层的访问技术。在ADO库中包含了三个基本接口:_ConnectionPtr,RecordsetPtr,_CommandPtr接口,下面讲解前两个接口的使用有关的操作。35V

26、isual C+Visual C+采用采用ADOADO对象操作数据库对象操作数据库有关操作如下:有关操作如下:1.导入ADO库文件2.初始化COM环境库3.使用_ConnectionPtr接口4.使用_RecordsetPtr接口36Visual C+Visual C+导入导入ADOADO库文件库文件 (1)(1)ADO提供了一个对象开发模型,但是在VC中没有方便易用的对象类可供直接使用。因此,在VC中提供了其它方法来产生和使用ADO的对象类,而这些是利用编译预处理指令#import。要想使用ADO的对象,必须在工程的stdafx.h文件里直接引入ADO库文件,以使编译器能正常编译,其用法为:

27、#importc:programFilesCommonFilessystemadomsado15.dllno_namespacerename(EOF,EndOfFile)rename(BOF,FirstOfFile)#includeicrsint.h/ADO2.0数据绑定控件37Visual C+Visual C+导入导入ADOADO库文件库文件 (2)(2)编译预处理指令#import可以告诉编译器将此指令中指定的ADO动态链接库文件msado15.dll导入到该工程中,它从动态链接库中抽取其中的对象和类的信息,并产生扩展名为.tlh和.tli的两个头文件包含在该工程中。.tlh文件中包含了

28、类的定义,.tli文件中则表示了类的实现。上述指令包含了#import的两个属性,第一个是no_namespace,用来对该动态链接库的命名域进行隔离;第二个rename用来对动态链接库中产生的名称重新命名,它的目的是避免ADO中的命名与VC中的命名冲突。例如EOF在VC中的ios.h,stdio.h中已被定义了,而ADO中也有EOF命名,因此,我们将ADO中的EOF重新命名为EndOfFile,这样,在编译时不会引起冲突。这些语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为 了 避 免 常 数 冲 突,将 常 数 EOF该 名 为 EndOfFile,BOF该 名 为FirstO

29、fFile 返回38Visual C+Visual C+初始化初始化COMCOM环境库环境库ADO库是一组COM动态链接库,应用程序在调用ADO前,必须初始化OLE/COM环境。常用的方法为::CoInitialize(NULL);返回39Visual C+Visual C+使用使用_ _ConnectionPtrConnectionPtr接口接口 _ConnectionPtr接口返回一个记录集或一个空指针,通常使用它来创建一个数据库连接或执行一条不返回结果的SQL语句(如数据库的存储过程)。用该接口返回一个记录集不是一个好方法,一般用它创建一个数据库连接,然后用其它对象执行数据的输入输出操作

30、。_ConnectionPtr是一个连接接口,它类似于ODBC数据库访问技术中的CDatabase类,它们的工作 原 理 相 同。要 想 使 用 它 们,首 先 创 建 一 个_ConnectionPtr接口,接着指向并打开一个ODBC数据源或OLEDB数据提供者(前面采用ADO控件的访问方式,在ADOData的属性设置中,就要设置该值,即出现在图14.6中的usingConnectionString值)。40Visual C+Visual C+使用使用_ _ConnectionPtrConnectionPtr接口(接口(2 2)以下代码分别创建一个基于DSN和非DSN的数据连接。/基于DSN

31、的连接使用方法_ConnectionPtrm_pCon;/声明数据库连接对象m_pCon.CreateInstance(_uuidof(Connection);/创建连接实例m_pCon-Open(DSN=vcDSN,NULL);/基于非DSN的连接使用方法_ConnectionPtrm_pCon;/声明数据库连接对象m_pCon.CreateInstance(_uuidof(Connection);m_pCon-Open(Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:DocumentsandSettingsAdministratorMyDocum

32、entsstudent.mdb;,-1);/打开连接41Visual C+Visual C+使用使用_ _ConnectionPtrConnectionPtr接口(接口(2 2)从上述代码可知,要想使用ADO对象访问数据库,首先要建立到数据库的连接,而该功能靠连接接口_ConnectionPtr来完成,当建立了连接对象后,要调用Open()函数来打开数据库的连接,该函数的原 形 如 下:HRESULTopen(_bstr_tConnectionString,_bstr_tUserID,_bstr_tPassword,longOptions);其中_bstr_t是一种COM中使用的字符串。第一个

33、参数ConnectionString为包含连接信息的字符串,第二个和第三个参数分别指定访问数据库的用户名称和密码,第四个参数指定连接是同步进行还是异步进行。返回 42Visual C+Visual C+使用使用_ _RecordsetPtrRecordsetPtr接口接口_ConnectionPtr是一个记录集对象,它提供了对数据记录的多项控制,如记录锁定的方式、游标控制等,其使用方法如下:(1)建立记录集对象建立记录集对象的典型代码为:_RecordsetPtrm_pRs;/声明记录集对象m_pRs.CreateInstance(_uuidof(Recordset);43Visual C+V

34、isual C+使用使用_ _RecordsetPtrRecordsetPtr接口接口(2 2)(2)打开记录集打开记录集对象的典型代码为:m_pRs-Open(select*fromstud_info,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);/打开数据集的方式为动态集、乐观锁说明:记录集对象的使用和连接对象的使用一样,都是先声明、建立实例,然后调用成员函数进行操作,记录集对象的打开操作要调用Open()方法,该函数的原型为:HRESULT Open(const _variant_t&Source,c

35、onst _variant_t&ActiveConnection,enum CursorTypeEnum CursorType,enum LockTypeEnumLockType,longOptions);44Visual C+Visual C+使用使用_ _RecordsetPtrRecordsetPtr接口接口(3 3)(3)记录集的指针移动 要想改变记录集的当前位置,可以使用方MoveFirst(移到首记录)、MoveLast(末 记 录)、MoveNext(下 一 条 记 录)、MovePreviou(前一条记录)等来完成。(4)在记录集中增删改数据要想在打开的记录集(游标)中修改数据

36、,可以使用方法AddNew(增加一条记录)、Delete(删除当前记录)、Update(更该当前记录)来完成。(5)在记录集中取数据当记录集打开以后,在本地的游标中就存放着查询出来的数据库库表中的记录。我们可以通过记录集的方法GetCollect()来取指定字段的值,例如:vFieldValue=m_pRs-GetCollect(学号);将记录集m_pRs当前记录的“学号”字段的值保存到变量vFieldValue中。45Visual C+Visual C+14.4.414.4.4一个使用一个使用ADOADO对象访问对象访问数据库的实例数据库的实例【例例14-2】创创建建一一个个利利用用ADO对

37、对象象访访问问数数据库的据库的MFC应用程序应用程序。1生成一个基于对话框的应用程序ADOAccess,该程序使用在ODBC访问中建立的学生数据库student.mdb,ODBC数据源vcDSN。2在对话框资源IDD_ADOACCESS_DIALOG中添加图14.14所示的控件,这些控件的属性如表14.2所示。46Visual C+Visual C+一个使用一个使用ADOADO对象访问数据库对象访问数据库的实例的实例(2)(2)返回图14.14对话框界面设计47Visual C+Visual C+控件类型属性值对应的成员变量分组框IDIDC_STATICCaption学生信息编辑框控件IDID

38、C_EDIT1m_SnoIDIDC_EDIT2m_NameIDIDC_EDIT3m_birthdayIDIDC_EDIT4m_EnglishGradeIDIDC_EDIT5m_ComputerGrade按钮IDIDOKCaption确定IDIDC_BUTTON1Caption向后IDIDC_BUTTON2Caption向前表表14.214.2控控件件的的属属性性设设置置与与对对应应的的成成员员变变量量设设置置return48Visual C+Visual C+一个使用一个使用ADOADO对象访问数据库对象访问数据库的实例的实例(3)(3)3主要代码(1)在CADoAccessDlg类的头文件中

39、增加变量classCADoAccessDlg:publicCDialogpublic:CADoAccessDlg(CWnd*pParent=NULL);/standardconstructor/DialogData/AFX_DATA(CADoAccessDlg)enumIDD=IDD_ADOACCESS_DIALOG;CString m_Name;/存放学号CStringm_Sno;/存放姓名CStringm_Birthday;/存放出生日期CStringm_EnglishGrade;/存放四级成绩CStringm_ComputerGrade;/存放VC成绩49Visual C+Visual

40、C+一个使用一个使用ADOADO对象访问数据库对象访问数据库的实例的实例(4)(4)/AFX_DATA/AFX_VIRTUAL(CADoAccessDlg)protected:virtualvoidDoDataExchange(CDataExchange*pDX);/DDX/DDVsupport/AFX_VIRTUALprotected:voidDispFields();/显示表中的记录值HICONm_hIcon;_ConnectionPtrm_pCon;/声明数据库连接对象_RecordsetPtrm_pRs;/声明记录集对象_variant_tvFieldValue;/ADO中的变量值CS

41、tringstrFieldValue;/C+中变量值50Visual C+Visual C+一个使用一个使用ADOADO对象访问数据库对象访问数据库的实例的实例(5)(5)(2)自定义函数DispField()的实现voidCADoAccessDlg:DispFields()vFieldValue=m_pRs-GetCollect(学号);strFieldValue=(char*)_bstr_t(vFieldValue);m_Sno=strFieldValue;vFieldValue.Clear();vFieldValue=m_pRs-GetCollect(姓名);strFieldValue=

42、(char*)_bstr_t(vFieldValue);m_Name=strFieldValue;vFieldValue.Clear();vFieldValue=m_pRs-GetCollect(出生日期);strFieldValue=(char*)_bstr_t(vFieldValue);m_Birthday=strFieldValue;51Visual C+Visual C+一个使用一个使用ADOADO对象访问数据库对象访问数据库的实例的实例(6)(6)FieldValue.Clear();vFieldValue=m_pRs-GetCollect(四级成绩);strFieldValue=(

43、char*)_bstr_t(vFieldValue);m_EnglishGrade=strFieldValue;vFieldValue.Clear();vFieldValue=m_pRs-GetCollect(VC成绩);strFieldValue=(char*)_bstr_t(vFieldValue);m_ComputerGrade=strFieldValue;vFieldValue.Clear();UpdateData(FALSE);52Visual C+Visual C+一个使用一个使用ADOADO对象访问数据库对象访问数据库的实例的实例(7)(7)(3)“向后”按钮的实现voidCAD

44、oAccessDlg:OnButton1()m_pRs-MoveNext();if(m_pRs-EndOfFile=VARIANT_FALSE)DispFields();else m_pRs-MovePrevious();AfxMessageBox(已经到最后一条记录);其它代码的实现参照程序自己理解。返回53Visual C+Visual C+习题(习题(1 1)一、名词解释1ADO2连接对象3记录集对象4ADO控件5Access2000二、简单题1在利用ADO应用程序经常要使用连接对象和记录集对象,他们的使用方法是什么,有哪些典型步骤。2下面是在VC中访问数据库的简单论述,请把他们翻译出来

45、,并加以理解。54Visual C+Visual C+习题(习题(2 2)Visual C+provides several ways to work withdatabases.YoucandirectlycalldatabaseAPIfunctionsfrom the DAO or ODBC Software Development Kits(SDKs),or you can choose to use the MicrosoftFoundationClassLibrary(MFC),andlettheMFCDAOand ODBC classes simplify working with

46、 eitherdatabase API.New features in this release of VisualC+includesupportforActiveX Data Objects(ADO)2.0,Microsoftsnew,high-levelinterfacetoallkindsofdata;integrationwiththeMicrosoftVisualDataTools;and OLE DB templates to simplify programming withOLEDB.55Visual C+Visual C+习题(习题(3 3)三、实验题1采用ADO控件和ADO对象访问数据库的方法,建立一个MFC应用程序,它能实现简单的学生成绩管理。它有三个对话框,分别实现学生信息、课程信息和学生考试信息的显示和增加新记录功能。2比较上述程序和第12章作业所编写的程序,他们完成的功能都是一样的,但一个采用的是文件系统的管理方法,一个是数据库管理系统管理的方法,比较他们的区别。56

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁