VC++第10章 VC++数据库编程.ppt
《VC++第10章 VC++数据库编程.ppt》由会员分享,可在线阅读,更多相关《VC++第10章 VC++数据库编程.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第10章章VC+数据库编程数据库编程数据库访问技术数据库访问技术(四种四种)ODBC接口访问数据库接口访问数据库*CRecordset类访问类访问ODBC数据库的数据源数据库的数据源*数据库应用程序的实现数据库应用程序的实现数据库访问技术数据库访问技术lODBC(Open DataBase Connectivity,开放数据库连接,开放数据库连接)是一种标准的基于是一种标准的基于SQL的接口,提供了应用程序和数据库之间的的接口,提供了应用程序和数据库之间的接口。用户的程序可以通过调用接口。用户的程序可以通过调用ODBC驱动管理器中的相应驱动驱动管理器中的相应驱动程序达到管理数据库的目的。解决
2、了数据库之间的不兼容问题。程序达到管理数据库的目的。解决了数据库之间的不兼容问题。使得任何一个数据库都可以通过使得任何一个数据库都可以通过ODBC驱动器与指定的驱动器与指定的DBMS相相联。访问数据库时,是由联。访问数据库时,是由ODBC管理器将应用程序的数据库访问管理器将应用程序的数据库访问请示传递给相应的数据库驱动程序,驱动程序再用请示传递给相应的数据库驱动程序,驱动程序再用SQL语句完成语句完成DBMS的访问任务。的访问任务。lDAO(Data Access Objects,数据访问对象,数据访问对象)DAO提供了一种通过程序代码创建和操作数据库的机制,多个提供了一种通过程序代码创建和操
3、作数据库的机制,多个DAO构成一个体系结构,在这个结构中,各个构成一个体系结构,在这个结构中,各个DAO对象协同工作。对象协同工作。DAO使用使用Microsoft Jet提供的数据库访问对象集直接访问提供的数据库访问对象集直接访问DBMS,速度比,速度比ODBC要快。要快。数据库访问技术数据库访问技术lOLE DB(Object Link and Embedding DataBase,对象,对象链接和嵌入数据库链接和嵌入数据库)是是VC+提供的基于提供的基于COM接口的数据库应用程序开发新技术。它接口的数据库应用程序开发新技术。它为所有的文件系统(包括关系型数据库和非关系型数据库)都提为所有
4、的文件系统(包括关系型数据库和非关系型数据库)都提供了统一的接口,供了统一的接口,VC+中提供了中提供了ATL模板(底层接口)用于设计模板(底层接口)用于设计OLE DB数据库应数据库应用程序,以避免直接使用用程序,以避免直接使用OLE DB技术设计数据库应用程序需要技术设计数据库应用程序需要大量代码的缺点。大量代码的缺点。lADO(ActiveX Data Objects,ActiveX数据对象数据对象)ADO技术是基于技术是基于OLE DB的访问接口,属于数据库访问的高层接的访问接口,属于数据库访问的高层接口。口。该技术封装了该技术封装了OLE DB的接口,定义了的接口,定义了ADO对象,
5、简化了数据库对象,简化了数据库应用程序的开发。应用程序的开发。MFC ODBC的构成的构成lODBC是一种使用是一种使用SQL的程序设计接口,使用的程序设计接口,使用ODBC能使用户编写数据库应能使用户编写数据库应用程序变得容易简单,避免了与数据库相连接的复杂性。用程序变得容易简单,避免了与数据库相连接的复杂性。l应用程序(最上层)应用程序(最上层)lODBC管理器:位于管理器:位于控制面板l驱动程序管理器驱动程序管理器:ODBC32.dll l不同的不同的ODBC驱动程序:对应不同的数据库驱动程序:对应不同的数据库l具体的数据源(最底层)具体的数据源(最底层)MFC ODBC类类lCData
6、base(数据库)(数据库)类:类:一个对象代表了一个与数据源的链接,通过它可以一个对象代表了一个与数据源的链接,通过它可以对数据源进行操作。对数据源进行操作。一个数据源就是一个由数据库管理系统所支持的数一个数据源就是一个由数据库管理系统所支持的数据库实例。据库实例。要想建立与数据源的连接,必须创建要想建立与数据源的连接,必须创建Cdatabase对对象,然后用象,然后用Open()函数或函数或OpenEx()函数初始化此对函数初始化此对象。象。一个应用程序可以存在一个或多个一个应用程序可以存在一个或多个CDatabase对象,对象,用来连接一个或多个数据源;也允许同一个数据源用来连接一个或多
7、个数据源;也允许同一个数据源对应多个连接。对应多个连接。MFC ODBC类类lCRecordSet(记录集)类:(记录集)类:一个对象代表了一组从数据源中查询出来的一个对象代表了一组从数据源中查询出来的记录记录-记录集,负责对记录的操作记录集,负责对记录的操作.l快照记录集(snapshots):是数据的一个静态视图l动态记录集(dynasets):能与其他用户所做的更改保持同步使使用用记记录录集集对对象象,首首先先应应建建立立与与数数据据源源的的连连接接,这这时时应应当当创创建建并并初初始始化化CDatabaseCDatabase对对象象,然然后后将将创创建建的的CDatabaseCData
8、base对对象象的的指指针针传传给给CRecordsetCRecordset对对象象的的构构造造函函数数,这这样样记记录录对对象象创创建建成成功功,最最后后使使用用Open()Open()函函数数对数据源进行数据查询。对数据源进行数据查询。MFC ODBC类类lCRecordView(可视记录集)类:(可视记录集)类:CRecordView对象是在控件中显示数据库记对象是在控件中显示数据库记录的视图对象,是直接连到一个录的视图对象,是直接连到一个CRecordSet对象上的表单视图。对象上的表单视图。负责界面,以视图形式显示数据库记录负责界面,以视图形式显示数据库记录lCFileExchang
9、e:负责:负责CRecordSet与数据源与数据源的数据交换的数据交换CDatabase 类的成员类的成员l用用CDatabase类建立与数据源的连接:类建立与数据源的连接:创建创建CDatabase类对象类对象调用调用Open()函数或函数或OpenEx()函数初始化此对象函数初始化此对象调用调用Close()函数断开与当前数据源的连接函数断开与当前数据源的连接l用用CDatabase类实现事务处理类实现事务处理CRecordset类的数据成员类的数据成员lCRecordset对象代表了一组从数据源查询出来的记录,对象代表了一组从数据源查询出来的记录,称为记录集。称为记录集。CRecords
10、et类的成员函数类的成员函数CRecordset类的成员函数类的成员函数1、添加记录、添加记录l使用使用CRecordSet类的类的AddNew函数,并且数据函数,并且数据库是以允许增加的方式打开库是以允许增加的方式打开l基本步骤:基本步骤:打开记录集,其方式为允许增加记录打开记录集,其方式为允许增加记录调用调用AddNew()函数函数设置新记录的域值设置新记录的域值调用调用Update()函数函数,使新添加的记录生效使新添加的记录生效2、修改记录、修改记录l使用使用CRecordSet类的类的Edit函数,并且数据库是函数,并且数据库是以允许修改的方式打开以允许修改的方式打开l基本步骤:基本
11、步骤:确认记录集可以修改确认记录集可以修改定位到希望修改的记录定位到希望修改的记录调用调用Edit()函数函数设置新记录的域值设置新记录的域值调用调用Update()函数函数,使修改生效使修改生效3、删除记录、删除记录l使用使用CRecordSet类的类的Delete函数,并且数据库是以允函数,并且数据库是以允许修改的方式打开许修改的方式打开l基本步骤:基本步骤:确认记录集可以修改确认记录集可以修改定位到希望删除的记录定位到希望删除的记录调用调用Delete()函数函数定位到另一条记录定位到另一条记录l删除记录无需调用删除记录无需调用Update()函数,且删除的记录仍然存函数,且删除的记录仍
12、然存在于记录集中。当在记录集中进行记录定位时,必须调在于记录集中。当在记录集中进行记录定位时,必须调用函数用函数IsDelete()以判断该记录是否已被删除以判断该记录是否已被删除.4、记录查询、记录查询l可以使用可以使用CRecordSet:Open()和和CRecordSet:Requery()成员函数实现成员函数实现.l使用成员变量使用成员变量m_strFilter查询查询,该成员用于存该成员用于存放放SQL语句中语句中WHERE以后的查询条件以后的查询条件,基本代基本代码如下码如下:m_pSet-m_strFilter=“年龄年龄30”;m_pSet-Requery();l使用使用SQ
13、L语句查询语句查询,基本代码如下基本代码如下:LPCTSTR strSQL;/strSQL为包含查询条件的为包含查询条件的SQL语句语句 m_pSet-Open(strSQL);Select*From 职员档案职员档案Where 年龄年龄305、记录排序、记录排序l可以通过记录集类的可以通过记录集类的m_strSort成员变量实现,成员变量实现,基本代码为:基本代码为:m_pSet-m_strSort=“年龄年龄”;m_pSet-Requery();Select*From 职员档案职员档案Order By 年龄年龄数据库的操作数据库的操作l主要包括:主要包括:添加记录添加记录修改记录修改记录删
14、除记录删除记录记录查询记录查询记录排序记录排序l通过记录集类的成员函数可以方便的实现数据通过记录集类的成员函数可以方便的实现数据库的操作功能库的操作功能组合查询和排序组合查询和排序l通过记录集类的通过记录集类的m_strFilter和和m_strSort成员成员变量变量,可以实现对数据库的组合查询和排序可以实现对数据库的组合查询和排序l基本代码如下基本代码如下:m_pSet-m_strSort=“部门部门”;m_pSet-m_strFilter=“年龄年龄30”;m_pSet-Requery();Select*From 职员档案职员档案Where 年龄年龄30Order By 部门部门数据库应
15、用程序的实现数据库应用程序的实现创建一个支持创建一个支持ODBC数据库的数据库的SDI应用程序:应用程序:u可以检索可以检索ODBC数据库中的记录;数据库中的记录;u允许用户更新、添加和删除记录;允许用户更新、添加和删除记录;u对记录的排序、查找等。对记录的排序、查找等。开发步骤开发步骤l准备数据库准备数据库l创建并注册数据源创建并注册数据源 l创建数据库应用框架创建数据库应用框架 l设计记录操作界面设计记录操作界面 l更新记录更新记录 l排序和筛选排序和筛选 创建数据库创建数据库l设计数据库设计数据库 用用Microsoft Access创建数据库创建数据库“职员档案职员档案.mdb”,其中
16、包含一其中包含一个表个表“职员档案职员档案”序号序号字段名称字段名称数据类型数据类型字段大小字段大小1序号序号自动编号自动编号长整型长整型2姓名姓名文本文本103性别性别文本文本24年龄年龄整型整型25籍贯籍贯文本文本206学历学历文本文本107职务职务文本文本108部门部门文本文本10l打开打开Microsoft Access,在启动首,在启动首画面中选择画面中选择“空空Access数据库数据库(B)”l单击单击“确定确定”按钮按钮后,在弹出的后,在弹出的“文文件新建数据库件新建数据库”对对话框中输入或选择话框中输入或选择文件名、文件类型文件名、文件类型和保存路径。和保存路径。l单击单击“创
17、建创建”按钮,按钮,弹出弹出“职员档案:数职员档案:数据库据库”对话框,在左对话框,在左侧的侧的“对象对象”列表框列表框中选择中选择“表表”,在右,在右侧的列表框中选择侧的列表框中选择“使用设计器创建表使用设计器创建表”l单击工具栏上的单击工具栏上的“设设计计”按钮,或者双击按钮,或者双击“使用设计器创建表使用设计器创建表”,弹出,弹出“表表1:表:表”对话框,开始设计对话框,开始设计一个职员档案数据表。一个职员档案数据表。使用工具栏上的使用工具栏上的“主主键键”(钥匙形状)按(钥匙形状)按钮将钮将“序号序号”设为主设为主键。键。l关闭并保存该表,在关闭并保存该表,在“另存为另存为”对话框中将
18、表对话框中将表命名为命名为“职员档案职员档案”。这样,在这样,在“职员档案:职员档案:数据库数据库”对话框的右侧对话框的右侧列表框中就增加了一个列表框中就增加了一个名为名为“职员档案职员档案”的表的表l双击打开双击打开“职员档案职员档案”表并编辑,如下图所示:表并编辑,如下图所示:创建并注册数据源创建并注册数据源lODBC管理器的使用管理器的使用用户用户DSNl用户数据源只对当前用户可见,而且只能用于当前机器上用户数据源只对当前用户可见,而且只能用于当前机器上 系统系统DSNl系统数据源对当前机器上的所有用户可见系统数据源对当前机器上的所有用户可见 文件文件DSNl文件数据源可以由安装了相同驱
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC+第10章 VC+数据库编程 VC 10 数据库 编程
限制150内