Visual-C++程序设计教程第九章

PPT
  • 阅读 78 次
  • 下载 0 次
  • 页数 69 页
  • 大小 305.000 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Visual-C++程序设计教程第九章
可在后台配置第一页与第二页中间广告代码
Visual-C++程序设计教程第九章
可在后台配置第二页与第三页中间广告代码
Visual-C++程序设计教程第九章
可在后台配置第三页与第四页中间广告代码
Visual-C++程序设计教程第九章
Visual-C++程序设计教程第九章
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 69
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Visual-C++程序设计教程第九章.ppt,共(69)页,305.000 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2471.html

以下为本文档部分文字说明:

第9章数据库编程9.1数据库概述◼数据库技术是应用数据管理应用的需要而产生,与数据存储技术的发展与应用密切相关。数据库从20世纪60年代中期产生至今,已经经历了三代的演变,目前已经发展成为一个庞大的数据库家族。9.1.1数据库和DBMS◼数据库是数据的集合,它由一个或多个表组成,每一个表中都存

储了对一类对象的数据描述和相应性质的数据集合。数据表由列和行构成,所以又称二维数据表。数据表中的每一列描述了对象的一个属性,表的每一行则是对一个对象的具体描述。一般将表中的一行称为记录(record),将每一列称为字段(field)。另外,数据

库通常还包括一些附加结构,用来维护数据。◼一般情况下,数据库是根据相应的数据模型来分类的,数据模型反映了数据与数据之间的关系。根据数据模型可以将数据库划分为以下3类:层次型数据库、网状型数据库、关系型数据库。9.1.1数据库和DBMS◼计算机数据处理的核心问题是数据管理技术,也就是对

数据进行分类、组织、存储、检索和维护的技术。数据管理技术随着计算机软硬件和计算机应用的发展而不断地发展,主要经历了人工管理阶段、文件系统阶段、数据库系统阶段、分布式数据库系统阶段和面向对象数据库系统阶段。◼数据库管理系统(DBMS)是数据库的核心,用来定义、管理和处理数据库

与应用程序之间的联系,它能支持多个用户同时以最快的速度大量存入或取出数据。现在我们经常使用的数据库管理系统有MicrosoftSQLServer,OracleServer,MicrosoftAccess,MicrosoftVisualFoxpro等。9.1.1数据库和DBMS

◼一个数据库系统,一般包括数据、数据库、数据库管理系统、应用程序、数据库系统。其中数据库管理系统是数据库系统的核心,主要功能如下:◼数据定义功能:定义数据库的逻辑结构和数据库对象。◼数据查询功能:数据库检索。◼数据操作功能

:数据库的添加与修改。◼数据控制功能:数据存取与更新、完整性与安全性。9.1.2结构化查询语言SQLSQL是StructuredQueryLanguage(结构化查询语言)的缩写,是关系数据库的标准语言,也是数据库领域使用最广泛的语言。SQL具有以下特点:1.综合统一的语言2.非过程化的语言3.

面向集合的操作方式4.所有关系数据库的公共语言9.1.2结构化查询语言SQLSQL语言包括数据定义语言、数据查询语言、数据操纵语言和数据控制语言等,下面详细介绍这些语言的使用方法。1.SQL查询语句SQL查询语句主要用于从数据库

中检索数据。数据查询语言主要包括SELECT等命令,SELECT命令的基本语法格式如下:SELECT<字段名>[字段名,…]FROM<表名>[WHERE<条件表达式>][GROUPBY<字段名>[HAVING<函数表达式>]][ORDERBY<字段名>[<次序>]]9.1.2结构化查询语言SQL2

.SQL数据操纵语句数据操纵语言是DataManipulationLanguage的缩写,主要是用于添加、修改和删除数据库记录。数据操纵语言主要包括INSERT、UPDATE、DELETE等命令,详细用法如下:1)添加记录添加记录的基本格式如下:INSERTINTO<表名>[(<字段名>[,<字

段名>]…)]VALUES(<值>[,<值>]…);说明:<表名>:指定要添加记录的基本表名称。<值>:指定记录字段的值。9.1.2结构化查询语言SQL2)更新记录更新记录的基本语法格式如下:UPDATE<表名>SET<字段

>=<表达式>[,<字段>=<表达式>]……[WHERE<条件表达式>];说明:<表名>:指定要更新记录的基本表名称。<字段>:指定要更新记录的字段。<表达式>:将指定的字段的值更新为表达式的值。3)删除记录删除记录的基本语法格式如下:DELE

TEFROM<表名>[WHERE<条件表达式>];9.1.2结构化查询语言SQL3.SQL其他语句除了数据查询语句,数据操纵语句,SQL还有很多其他的语句,如数据定义语句,数据控制语句等等,下面将分别介绍这些语句的功能和用法。数据定义语句是DataDefinitionLanguage的缩

写,主要用于定义表、视图或索引,主要包括CREATE、ALTER、DROP等命令。创建基本表的基本语法格式如下:CREATETABLE<表名>(<字段名><数据类型>[<完整性约束>][,<字段名><数据类型>[<完整性约束>]]…)[,<完整性约束>]);说明:<表名>:所要定义的基本表名称。<

字段名>:指定该表的字段名。<数据类型>:指定字段的数据类型,不同的数据库系统支持的数据类型不完全相同。<完整性约束>:指定字段或表的完整性约束条件。9.1.2结构化查询语言SQL数据控制语句:数据控制语句主要用于对基本表和视图进行授权,描述完整性规则和控制事务。数据控制语句主

要包括GRAND、COMMIT、ROLLBACK等命令。在VisualC++6.0访问数据库中很少涉及到部分内容,因此详细使用方法就不作介绍。9.1.3数据库访问模式VC++6.0和数据库是两种不同的软件系统平台,为了实现不同平台之间的数据交流,VC++6.0提供了对数据库访

问的全面支持,主要的数据库访问技术概括起来有5种:1.ODBCAPI;2.MFCODBC类;3.MFCDAO类;(数据访问对象)4.MFC的OLE/DB;5.ActiveX数据对象(ADO)。9.1.3数据库访问模式1.ODBCAPI最初出现于20世纪80年代末,ODBC

是数据库应用程序访问的一个统一接口,对于不同的数据库,ODBC提供了一套统一的编程接口API。任何应用程序,只要系统包含有某数据库的确ODBC驱动程序,就可以使用其API来访问该数据库。ODBC结构是分层管理的,从上至下分别为应用程序层、ODBC接口层、驱动程序管理器、驱动程序、数据源

。最开始,ODBC是作为编写访问关系数据库的应用程序所提供的一种统一的接口。但现在,ODBC已经成为一种标准,目前的数据库系统一般都提供了驱动程序,这使得ODBC的应用范围十分广泛,基本上可以用于所有的数据库系统。9.1.3数据库访问模式2.MFCODBC◼MFC1.5后的版本里引入封装了OD

BC功能的类。通过这些类提供与ODBC的接口,使得用户可以不须处理ODBCAPI中的繁杂处理就可以进行数据库操作。主要的MFCODBC类如下:◼CDatabase类:一个CDatabase对象表示一个到数据源的连接

,通过它可以操作数据源。应用程序可使用多个CDatabase对象。◼CRecordSet类:一个CRecordSet对象代表一个从数据源选择的一组记录的集合-记录集。记录集有两种形式:snapshot和dynaset。前者表示

数据的静态视图,后者表示记录集与其他用户对数据库的更新保持同步。通过CRecordSet对象,用户可以对数据库中的记录进行各种操作。◼CRecordView类:CRecordView对象是在空间中显示数据库记录的视图。这种视图是一种直接连到一个CRecordSet对象的格式

视图,它从一个对话框模板资源创建,并将CRecordSet对象的字段显示在对话框模板的控件里。对象利用DDX和RFX机制,使格式上的控件和记录集的字段之间数据移动自动化,也就是说,用户甚至不要编写一行代码就可以实现简单的数据库记录查看程序。9.1.3

数据库访问模式3.DAODAO是DataAccessObject(数据访问对象)的缩写。通过MicrosoftAccess/Jet数据加引擎,可以访问Access数据库中的数据。◼DAO为用户提供了以下的数据访问对象:◼数据库对象(Databas

eObject)◼表定义对象(TableDefObject)◼查询定义对象(QueryDefObject)◼记录集对象(RecordSetObject)9.1.3数据库访问模式4.OLEDB◼OLEDB是微软的战略性的通向不同的数据源的低级应用程序接口。OLEDB不仅包括微软资助的标准

数据接口开放数据库连通性(ODBC)的结构化问题语言(SQL)能力,还具有面向其他非SQL数据类型的通路。作为微软的组件对象模型(COM)的一种设计,OLEDB是一组读写数据的方法(在过去可能被称为渠道)。◼OLEDB试图提供一种统一的

数据访问接口,并能处理处理标准的关系性数据库中的数据之外,还能处理包括邮件数据、Web上的文本、图形、目录服务以及主机系统中的IMS和VSAM数据。OLEDB提供一个数据库编程COM接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不

用考虑数据的具体存储地点、格式和类型。这个COM接口与ODBC相比,其健壮性和灵活性要高的多。9.1.3数据库访问模式5.ActiveX数据对象(ADO)◼是微软提供的面向对象的接口,与OLEDB类似,但接口更简单,具有更广泛的特征数组和更高程度的灵活性。ADO基于CO

M,提供编程语言可利用的对象,除了面向VC++,还提供面向其他各种开发工具的应用,如VB,VJ等。ADO在服务器应用方面非常有用,特别是对于动态服务器页面ASP(ActiveServerPage)。◼ADO对象结构类似于OLEDB,但并不依靠对象层次。大多数情况下,用户只需要创

建并只使用需要处理的对象。下面的对象类组成了ADO接口。◼Connection:用于表示与数据库的连接,以及处理一些命令和事务。9.2MFCODBC数据库访问技术◼在VisualC++中,MFC封装的ODBC数据库类包括CDatabase(数据库类

)、CRecordSet(记录集类)和CrecordView(记录视图类),更为用户提供了切实可行的解决方案。9.2.1MFC的ODBC过程使用MFCODBC类访问数据库,主要有以下几个步骤:1.建立数据库建立数据库就是用户

根据自己的需要设计数据库中的表及各表之间的依赖关系。要想设计一个完整的数据库,首先必须了解数据库的基本知识。2.配置数据源◼数据库设计建立完成后,它只是单独的几张表,并不能在程序中去访问它,因为程序并不知道数据库在哪里。此时就需要在应用程序和数据库之间建立连接了。◼配置数据源其实

就是为数据库创建一个对外的窗口,应用程序通过这个窗口来访问数据库中的数据。3.数据库的连接◼建立完数据库,又配置好了数据源,接下来就可以在程序中通过数据源来访问数据库了,其步骤如下:◼(1)首先要在程序中引入MFCODBC数据库

的定义文件:◼#include<afxdb.h>◼(2)定义CDataBase数据库对象:◼CDataBasem_db◼(3)利用CDataBase类的OpenEx函数建立和数据库的连接。◼4.数据库操作◼在完成了上

面的步骤后,就可以使用相应的SQL语句对数据库进行浏览、添加、删除、修改等操作了。9.2.2MFC的ODBC类1.CDatabase类CDatabase类派生于CObject类。MFC的CDatabas

e类用来封装应用程序对数据库链接的处理,一个CDatabase对象就代表一个数据源的链接。数据源可以是SQLServer、Access、BorlanddBASE和xBASE等数据库管理系统的数据实例,而链接可以是通过网

络与一个数据库服务器的连接,也可以是在本地机上用来跟踪程序对一个数据库操作的设置。一个应用程序可以同时拥有多个激活的CDatabase对象。CDatabase类的成员函数直接与ODBCAPI相对应。◼1)建立数据库链接◼为使用CDatabase,需要构造一个CDatabase对象,然后紧接着调用

Open()或OpenEx()成员函数,以打开一个数据库链接,因为在用它创建记录集(recordset)对象前必须对其进行初始化。当用户构造了CRecordset对象来对链接的数据源操作时,把记录集构造函数的指针传送给CDatabase对象。其中Open

Ex()是优先选择的,因为它使用起来更为方便。◼其函数原型如下:◼VirtualBOOLOpenEX(LPCTSTRlpszConnectString,DWORDdwOptions=0);◼Throw(CDBEx

ception,CMemoryException);◼若链接成功,则函数返回非零值,否则,若在出现的要求更多的链接信息对话框时选择了Cancle,则函数返回值为零。在其他情况下,都将产生异常。◼2)设置超时时间◼如果是通过网络与一个数据库服务系统连接,耗费的时间可能要比单机长一些,在此期

间可能发生错误。可以用SetLoginTimeout()设置应用程序等待建立链接的时间,其原型为:◼voidSetLoginTimeOut(DWORDdwSeconds);◼参数dwSeconds为尝试链接的秒数。◼3)获取链接信息◼可以随时用IsOpen()函数来查看CDatabas

e对象是否已经链接到数据源,用GetConnect()得到链接数据库的链接字符串,用GetDatabaseName()查看数据源名字。它们的原型如下:◼BOOLIsOpen()const;◼ConstCString&GetConne

ct()const;◼CStringGetDatabaseName()const;◼其中,若CDatabase对象已经链接,则IsOpen()返回非零值;GetConnect()返回的是一个CString对象的const指针,带有数

据库链接字符串,若还没有调用OpenEx()或Open()建立链接,则返回空的字符串;GetDatabaseName()返回一个带数据源名字的CString对象,若没有数据源,则返回空字符串。◼4)用CDatabase::ExecuteSQL

()执行SQL语句◼对于返回结果集的一般查询,使用CRecordset很容易。然而,可以不用CRecordset执行不返回结果集的SQL语句,而是通过调用CDatabase类的CDatabase::ExecuteSQL()成员函数执行。其函数原型如下:◼voi

dExecuteSQL(LPCTSTRlpszSQL);◼Throw(CEBException);◼参数lpszSQL是一个带SQL语句字符串的指针。◼2.CRecordset类的使用◼CRecordset类派生于CObject类。虽然CDatabase类允许对一个数据库执行SQL语句,但实际

上是CRecordset类提供了应用程序与数据交互的实际操作。CRecordset类用来封装数据库的查询,包括记录的插入、修改、删除等操作。◼记录集主要分为快照集(Snapshot)和动态集(Dynaset)两种,CRecordset类对这两者都支持。动态记录集能保持与其他用户所做的更改同步;静态

记录集则是数据的一个静态视图。每一种形式的记录集在被打开时都提供一组记录,所不同的是,当在一个动态集里滚动到一条记录时,由其他用户或用户自己的应用程序中的其他记录集对该记录所做的更改会相应地显示出来。◼记

录集对象一般都可以进行如下的操作:在记录间滚动、更新记录并设定锁定模式、以记录信进行过滤、限制对数据源可选记录的选择、对记录排序、当完成操作后调用Close()函数销毁对象等。◼3.CRecordVi

ew类的使用◼CRecordView类对象直接与CRecordset(记录集)类对象连接,为该记录集提供显示的视图。它是数据库操作的界面,提供了以下几个操作:移动到第一个记录、下一个记录、前一个记录、最后一个记录,还可以更新数据库中当前视图所显示记录。9.3ADO数据库访问

技术ADO是ActiveXDataObject(ActiveX数据对象)的缩写,是目前最流行的客户端数据库技术。ADO是建立在OLEDB底层技术之上的高级编程接口。9.3.1ADO数据库访问技术介绍◼ADO基于COM,并提供了多语言支持,很适合脚本

语言。它除了提供面向VisualC++的应用外,还提供了面向其他各种开发工具的应用,如VB、VBScript、JavaScript和Java等。◼ADO是面向对象的,也是微软通过数据访问的一部分。ADO是从微软的远

程数据对象发展而来的,并且具有替代RDO的远程数据服务的特征。◼ADO由ADO库、多维ADO库和扩展ADO库组成。其中,所有的ADO库都提供类型库,在使用ADO开发数据库应用程序时,都必须在应用程序中引用这些输入库。9.3.2ADO数据库结构及

其对象ADO是一种面向对象的编程接口,ADO向我们提供了一个熟悉的,高层的对OLEDB的Automation封装接口,ADO对象可能很多读者都已熟知,如连接对象,命令对象,记录集对象,属性对象,错误对象,参数对象等等。下面我们将主要讲一下ADO对象模型,连接对象,命令对象和记录集对象。1.

ADO对象模型ADO模型是由3个主体对象和4个集合对象组成的。其中,主体对象分别为Connection、Command和Recordset,集合对象分别为Field(字段对象)、Parameter(参

数对象)、Property(属性对象)和Error(错误对象)。2.连接对象连接对象描述了一个与数据源打开的连接。一个连接对象代表与一个数据源的惟一会话,在客户端/服务器数据库系统情况下,它相当于一个到服务器的实际的网络

连接。9.3.2ADO数据库结构及其对象3.命令对象命令对象是一个特定命令的定义,用以在数据源中上执行。使用命令对象可以查询数据库,并将返回的记录存放在一个记录集对象中。还可以执行批操作或者理数据库结构等。命令对象包含一个参数集合和一个属性集合,并提供了许多属性

、方法和事件。◼1)命令对象的功能◼定义命令的可执行文件:使用CommandText属性。◼指定命令的类型:使用CommandType属性。◼设置命令等待时间:使用CommandTimeout属性。◼关联一个打开的链接:使用ActiveConnection属

性。◼2)命令对象的主要属性◼ActiveConnection:当前的连接对象。◼CommandText:命令文本,如SQL语句、表名、存储过程等。◼CommandTimeout:命令等待时间。◼CommandType:命令对象的类型◼3)命令对象的主要方法◼CreatePara

meter方法使用指定的属性来创建一个新的参数对象,方法定义如下:◼ParameterPtrCreateParameter(◼_bstr_tName,//指定参数对象的名称◼EnumDataTypeEnumType,//指定数据类型◼EnumPar

ameterDirectionEnumDirection,//指定参数传递方向◼LongSize,//指定参数值的最大长度◼Const_variant_t&Value//最大参数对象的值◼);9.3.2ADO数据库结构

及其对象4.记录集对象◼记录集对象用于描述从基本表或执行命令的结果返回的整个记录集。在任何时候,记录集对象中只包含单条记录数据,称之为当前记录。◼使用记录对象可以管理来自提供者的数据。在使用ADO时,操作数据几乎全部使用记录集对象。所有的记录集对象都

是由记录和字段所组成的。记录集对象包含一个字段集合和一个属性集合,并提供了许多属性、方法和事件。◼1)记录集对象的功能◼打开和关闭记录集对象:使用Open方法和Close方法。◼编辑记录:使用AddNew、Delete和Update等方法。◼2)记

录集对象的主要属性◼ActiveConnection:当前的连接对象。◼BOF:当前记录在第一条记录之前。◼EditMode:当前记录编辑状态◼3)记录集对象的主要方法◼(1)Open方法可以打开一个游标,用来描

述一个来自基本表或查询结果的记录信对象,方法定义如下:◼HRESULTOpen(◼Const_variant_t&Source,//指定记录集◼Const_variant+t&ActiveConnection,//指定记录集对象使用的连接◼EnumCursorTypeE

numCursortype,//指定使用的游标类型◼EnumLockTypeEnumLockType,//指定锁定类型◼LongOptions//解释选项,指定命令类型◼);◼(2)Close方法用来关闭一个记录集

对象及相关对象,方法定义如下:◼HRESULTClose();◼Move方法用来在记录集对象中移动当前记录的位置,方法定义如下:◼HRESULTMove(◼LongNumRecords,//指定要移动的记录数◼Const_variant_t&Start

//指定移动的起始位置,可以是字符串◼);◼(3)MoveFirst、MoveLast、MoveNext和MovePrevious方法分别用来在指定记录集对象中移到第一条、最后一条、下一条和上一条记录位置。这些方法无须传递参数。◼(

4)NextRecordset方法用来清除当前记录集对象,并返回系列命令所产生的下一个记录集对象,方法定义如下:◼_RecordsetPtrNextRecordset(◼VARIANT*RecordAffected◼);◼(5)AddNew方法用来在可更新的记录集对象只创建一个新的记录,方

法定义如下:◼HRESULTAddNew(◼Const_variant_tFieldList,//指定字段列表数组◼Const_variant_t&value//指定字段值数组◼);◼(6)Delete方法用来删除当前记录或一组记录,方法定义如下:◼HRESUL

TDelete(◼EnumAffectEnumAffectRecords//指定受影响的记录数,是AffectEnum枚举类型值◼);◼(7)Update方法用来将对当前记录所做的更改保存到记录集对象,方法定义如下:◼HRESULTUpdate(◼Const_var

iant_t&Fields,//指定字段数组◼Const_variant_t&Values//指定字段值数组◼);◼(8)GetRows方法用来获取记录集的多个记录,并将结果存放到一个二维数组中,方法定义如下

:◼_variant_tGetRows(◼LongRows,//指定要获取的记录数◼Const_variant_t&Start,//指定开始标签,是一个BookmarkEnum枚举类型值◼Const_variant_t&Fields//返回字段数组◼);9.3.3

使用ADO数据库对象操作数据库ADO(ActiveXDateObject)是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数据库访问技术。ADO封装了OLEDB所提供的接口,是基于OLEDB模型之上的更高层应用,比起OLEDB提供者,AD

O的接口可以使程序员在更高级别上同数据交互,并且保留了MFC/ODBC和DAO的特征。ADO技术不仅应用于关系数据库,也可以应用于非关系数据库。9.3.3使用ADO数据库对象操作数据库1.ADO编程步骤(1)连接数据源(2)创建对该数据源的查询(3)执行该查询(4)把查询数据存

储到可访问对象中(5)更新该数据源,以反映对该数据的编辑一般来说,需要使用以上ADO编程模型中的所有步骤。但是ADO具有很大的灵活性也可以根据需要只使用模型中的一部分。例如,可以创建一个新的记录集对象,并在代码中为其赋值,不必连接到某个数据源,

也不必执行任何查询语句,甚至还可以把记录集对象传送给其他过程或应用程序。9.3.3使用ADO数据库对象操作数据库2.设计应用程序在ADO编程之前先建立一个Access数据库Project.mdb。以下

是ADO编程的具体方法。1)生成应用程序框架并初始化OLE/COM库环境2)引入ADO库文件3)创建ADO与数据源的连接4)执行SQL命令并取得结果记录集9.4基础实例——ODBC数据库应用程序◼1.编

程要求◼编写一个电话本信息查看程序。程序运行后,程序界面显示电话本中联系人的基本信息(姓名、电话号码和企业名称等),单击工具栏上的导航按钮(上一条、下一条、第一条、最后一条等),可以在电话本翻阅查看其他联系人的信息。◼2

.编程实现◼(1)建立一个名为“电话本”的Access数据库,在“电话本”数据库中建立两张表:“电话本”表和“企业信息”表。◼(2)建立一个查询,两个表(企业信息表和电话本表)根据“单位编号”字段关联查询,查询字段包括“电话本”表中的姓名、性别、电话号

码和“企业信息”表中的企业名称、企业地址。创建的查询命名为“电话本详细信息”。◼(3)在“控制面板”的“管理工具”下的“数据源ODBC”中建立一个ODBC数据源,过程如下:◼首先打开ODBC数据源管理器

,单击“添加”按钮,弹出“创建数据源”对话框,选择数据源的驱动程序,本例中选择“DriverforMicrosoftAccess(*.mdb)”。单击“完成”按钮。将会出现一个对话框,在“数据源名”中输入名称用以标识这个ODBC数据源,再选择一个

数据库文件,没有的话,可以再新创建一个数据库。选择数据库文件完毕后,单击“确定”按钮即可。此时就创建了一个ODBC数据源。◼(4)打开VisualC++6.0,再打开应用程序向导,如图9-5所示。◼(5)在步骤

1中保持默认选择(多文档),单击“下一步”按钮,进入向导的步骤2,如图9-6所示。◼(6)选择“查看数据库不使用文件支持”单选按钮,然后单击“数据源”按钮,显示“DatabaseOptions(数据库选项)”对话框,如图9-7所示。◼(7)选中数据源类型“O

DBC”,并从下拉列表中选择“电话本”,其他保持默认。单击“OK”按钮,将会显示“SelectDatabaseTables(选择数据库的表)”对话框,如图9-8所示。◼(8)选择“电话本详细信息”查询,单击“OK”按钮返回应用程序向导。◼(9)单击“完成”按钮,将会显示“强制使用S

DI”提示信息。◼(10)单击“确定”按钮,显示“新建工程信息”对话框,然后单击“确定”按钮就完成了一个工程的创建。现在VisualC++6.0窗口中显示的是IDD_ODBC_FORM对话框。◼(11)参照图9-10定制该窗口的布

局,并设置各控件属性。◼(12)在视图类CODBCView的DoDataExchange函数中添加绑定记录代码如下:◼voidCODBCView::DoDataExchange(CDataExchange*pDX)◼{◼CRecordView::DoDataExchange(pDX);◼//{{

AFX_DATA_MAP(CODBCView)◼//NOTE:theClassWizardwilladdDDXandDDVcallshere◼//把数据集中的域数据成员和文本框的值绑定◼DDX_FieldText(pDX,

IDC_EDIT1,m_pSet->m_column1,m_pSet);◼DDX_FieldText(pDX,IDC_EDIT2,m_pSet->m_column2,m_pSet);◼DDX_FieldText(pDX,IDC_EDIT2,

m_pSet->m_column3,m_pSet);◼DDX_FieldText(pDX,IDC_EDIT3,m_pSet->m_column4,m_pSet);◼DDX_FieldText(pDX,IDC_EDIT4,m_pSet->m_column5,m_pSet);◼//}}AFX

_DATA_MAP◼}◼(13)编译运行,示例程序的运行效果如图9-11所示。9.5提高实例——ADO数据库应用程序◼1.编程要求◼编写一个学生信息查看程序。程序运行后,界面显示某一学生信息,在程序中可以上下查看其他学生的信息,输入某一个学生的姓名或学号后,可以根据姓名或学号查询该学生的

信息。◼2.编程实现◼本示例要用到SQL数据库。所以第一步要建立一个SQL数据库,然后再用ADO对象去连接数据库,访问数据库中的数据。◼(1)打开SQLServer2005应用程序,新建一个名叫student的数据库。创建好数据库后,创建一个名叫stud_info的学生信息表。◼

(2)利用应用程序向导创建一个基于对话框的应用程序,命名为ADO。◼(3)在工作区的ResourceView页面中双击Dialog文件夹下的IDD_ADO_FORM,打开视图模板编辑器,并参照图9-12编辑窗口布局界面。◼(4)通过Class

Wizard为各个控件添加对应的变量。◼(5)在头文件StdAfx.h文件中引入ADO库的代码。◼#import"C:\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespacerename("EOF","adoEOF")

◼(6)在程序类CADOApp中声名连接对象,访问类型为public。◼public:◼_ConnectionPtrm_pConnection;◼(7)初始化程序例程。◼在程序类CADOApp的InitInstance()函数中,初始化COM环境,创建连接对象,代码

如下:◼BOOLCADOApp::InitInstance()◼{◼AfxEnableControlContainer();◼AfxOleInit();//初始化COM环境◼HERSULThr;◼_bstr_tst

rConnect;◼strConnect="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;//连接字符串◼PersistSecurityInfo=False;InitialCatalog=s

tudent;DataSource=.;";◼try◼{◼m_pConnection.CreateInstance("ADODB.Connection");//与数据源的连接◼hr=m_pConnection->Open(strConnect

,"","",adModeUnknown);◼}◼catch(_com_errore)◼{◼AfxMessageBox(e.Description());◼}◼…◼returnFALSE;◼}◼(8)在对话框类CADODlg中声明记录集对象,

访问类型为protected。◼protected:◼_RecordsetPtrm_pRecordset;◼(9)初始化对话框。◼在函数BOOLCADODlg::OnInitDialog()中创建记录集对象,打开记录集,并调用函数DispRec

ord()将数据显示出来。◼(10)在对话框类中,添加记录函数DispRecord(),用来将数据库中的记录显示在对话框中。◼(11)实现浏览记录集功能。◼通过ClassWizard为“前一条”和“后一条”按钮增加响应

函数。下面分别是“前一条”按钮和“后一条”按钮的单击事件代码。◼(12)实现查询记录功能。◼利用ClassWizard分别为“按学号”按钮和“按姓名”按钮添加单击响应函数。下面分别是“按学号”查询信息记录和“按姓名”查询信息记录的代码。◼(13)还原COM环境以关闭连接对象和记录集

。◼通过ClassWizard增加函数voidCADODlg::OnDestroy(),以还原COM环境,并关闭连接对象和记录集。◼(14)编绎、连接运行程序,结果如图9-13所示。本章结束

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?