Visual C .NET 应用教程第8章_第1页
Visual C .NET 应用教程第8章_第2页
Visual C .NET 应用教程第8章_第3页
Visual C .NET 应用教程第8章_第4页
Visual C .NET 应用教程第8章_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章数据库应用保定职业技术学院第8章数据库应用8.1数据库的基本知识8.2ODBC访问数据库8.3创建数据库及DNS8.4创建数据库应用程序8.5数据库的其它访问方式8.6专题讨论与作业设计8.1数据库的基本知识1.数据库通俗的讲,数据库(DataBase)是存放数据的仓库。我们可以借助存放货物的仓库来理解数据库,只不过这些货物是数据,这个仓库是建立在计算机上的。严格的定义,数据库是长期存储在计算机内的、有组织的、可共享的数据集合。这种集合具有如下特点:(1)数据库中的数据按一定的数据模型组织、描述和存储(2)具有较小的冗余度(3)具有较高的数据独立性和易扩充性(4)为各种用户共享8.1数据库的基本知识2.数据库管理系统数据库管理系统(DataBaseManagementSystem简称DBMS)是位于用户与操作系统之间的一层数据管理软件,例如我们学习的SQLServer2000就是一个DBMS。数据库管理系统完成数据的组织、存储、维护、获取等任务,具有如下功能:(1)数据定义功能用户可以通过DBMS提供的数据定义语言(DataDefinitionLanguage,简称DDL)方便地对数据库中的对象进行定义。(2)数据操纵功能用户可以通过DBMS提供的数据操作语言(DataManipulationLanguage,简称DML)方便地操纵数据库中的数据,实现对数据库的基本操作,如增加、删除、修改、查询等。8.1数据库的基本知识(3)数据库的运行管理数据库管理系统统一管理数据库的运行和维护,以保障数据的安全性、完整性、并发性和故障的系统恢复性。(4)数据库的建立和维护功能数据库管理系统能够完成初始数据的输入、转换,数据库的转储、恢复,数据库的性能监视和分析等任务。数据库管理系统是数据库系统的一个重要组成部分。8.1数据库的基本知识3.数据库系统数据库系统(DataBaseSystem,简称DBS)是采用数据库技术的计算机系统。数据库系统由数据库、数据库管理系统及开发工具、数据库应用程序、数据库管理员和用户组成。

4.SQL(StructuredQueryLanguage)

语言是基于关系数据模型的数据库查询语言,它是一种非过程化的程序语言,也就是只需写出要做什么,而不必写出如何做。SQL也是关系数据库的标准语言,它提供了数据查询、数据定义和数据控制功能,实现数据库的关系操作。8.2ODBC访问数据库1.开放式数据库互联ODBC

(OpenedDatabaseConnectivity)是一种用于访问数据库的统一界面标准,由Microsoft公司于1991年底发布,它应用数据通信方法、数据传输协议、DBMS等多种技术定义了一个标准的接口协议,允许应用程序以SQL作为数据存取标准,来存取不同的DBMS管理的数据。2.ODBC是一个分层体系结构,由四部分构成:ODBC数据库应用程序(Application)驱动程序管理器(DriverManager)DBMS驱动程序(DBMSDriver)数据源(DataSource)。8.2ODBC访问数据库3.ODBC数据库类

VisualC++.NET提供支持ODBC数据库的类主要包括CDatabase类、CRecordset类、CRecordView类、CFieldExchange类。(1)建立连接要建立与数据源的连接,首先要构造一个CDatabase对象,然后再调用CDatabase的Open成员函数来建立连接。在文档类中建立连接的代码如下:

CDatabasem_db;m_db.Open(_T("rsgl",FALSE,FALSE,T("ODBC;UID=YXQ;PWD=1234"));//连接到名为“rsgl”的数据源,并指定了用户名和密码。8.2ODBC访问数据库(2)关闭连接要想关闭与数据库的连接,可以使用CDatabase类的Close函数。可以使用isOpen函数判断当前是否有连接。(3)返回连接字符串要想获取当前连接的字符串,可以使用GetConnect函数。函数的原型如下:

constCString&GetConnect()const;2.CRecordset类

CRecordeset类的功能是从数据源选择一组记录集。CRecordset类可以选择一个表或一个视图作为一个记录集。通过该类提供的成员函数可以对记录集中的数据进行查询操作,如增加、删除、修改、滚动等。CRecordset类是ODBC类中最重要的、功能最强大的类。8.2ODBC访问数据库CRecordset对象的记录集主要分为快照(Snapshot)和动态集(Dynaset)两种。快照记录集提供了对数据库中数据的静态视图(类似于一张照片),当别的用户修改了数据库中的数据后,快照记录集中的数据不会改变,直到调用了CRecordset的Requery重新查询,快照记录集才会反映数据库中数据的变化。快照对自身用户的修改、删除会直接反映,但对增加的记录需要调用Requery成员函数后才能反映到快照中。动态集提供了数据库中数据的动态视图,当别的用户修改、删除了数据库中的数据之后,动态集会自动的反映,但是别的用户增加的新记录必须调用Requery才能反映出来。自身应用程序对记录的修改、添加、删除会立即反映在动态集中。在记录集中滚动记录,需要一个标志来指明滚动后当前记录的位置。ODBC驱动会维护一个游标用于操作记录集中的数据。8.2ODBC访问数据库3.CRecordView类

CRecordView类的功能是提供与某个记录集直接相连的表单视图,利用对话框数据交换机制DDX在记录集与表单视图的控件之间传输数据。应用程序向导自动创建CRecordView类,为了显示记录集中的数据,必须在记录视图窗口中添加编辑控件,并且控件要与它们代表的数据库字段变量绑定。记录视图提供了移动到第一个、移动到下一个、移动到上一个、移动到最后一个记录等4个记录移动操作。4.CFieldExchange类

CFieldExchange类的功能是支持记录字段数据交换(RFX),即记录集字段数据成员与相应的数据库表字段之间的数据交换。该类的功能与DataExchange类的对话框数据交换功能类似。8.3创建数据库及DNS

在编写应用程序之前,首先应该创建数据库,并将设计的表结构和表中的试验数据录入到数据库中以便于应用程序使用。1.创建一个数据库建立一个人事管理数据库,数据库结构如下:

8.3创建数据库及DNS

使用MicrosoftAccess2002创建数据库及其数据表的步骤如下(演示创建过程)(1)启动MicrosoftAccess2002

(2)在“文件新建数据库”对话框中,指定数据库的名称

(3)创建数据库对象,进入“设计视图”。

(4)定义表中的每—个字段。

(5)定义一个主键(6)保存表(7)输入记录8.3创建数据库及DNS2.创建数据的DNS

用户在使用VisualC++.NET编写数据库应用程序前,必须首先建立能够通过ODBC驱动程序访问数据库的数据源。(演示)创建DNS的步骤如下:打开ODBC数据源管理器通过数据源管理器可以创建以下三种类型的数据源:(1)用户DSN:用户数据源只能由当前用户使用,并且只对该用户可见。(2)系统DSN:系统数据源可以由计算机上所有的用户使用,并且对于计算机上所有的用户及系统范围的所有服务(如MicrosoftWindowsNT服务),系统数据源都是可见的。8.3创建数据库及DNS(3)文件DSN

文件数据源(也称作DSN文件)将连接信息保存在文本文件中,而不是Windows注册表中。通常在使用上,文件数据源比计算机数据源更加灵活。例如,可以将文件数据源复制到装有正确ODBC驱动程序的任何计算机上,因而对于所有这些计算机,应用程序都可以有一致而准确的连接信息。也可以将文件数据源放置到单个服务器,在网络上的多台计算机之间进行共享,并且可以方便地在一个位置维护连接信息。

创建rsgl数据库的用户数据源8.4创建数据库应用程序8.4创建数据库应用程序1.创建应用程序框架下面,我们就以【例8.1】应用程序为例,介绍创建应用程序框架的步骤:(1)创建一个项目名称为mych8_1的单文档应用程序,在应用程序向导的“数据库支持”页面中的“数据库支持”选项组中,选择“不支持文件的数据库视图”,“客户类型”选择ODBC。(2)将应用与数据库rsgl.mdb相关联,通过“数据源”按钮,选择“rsgldsn”数据源,选择“rsgl”数据表。(3)应用程序向导在生成应用程序框架之后,会给出一个“安全警告”消息框,提示用户代码中的连接数据源字符串,可能有密码明文。

8.4创建数据库应用程序1.创建应用程序框架(4)编译应用程序,会出现一个错误。这个错误的含义是连接字符串可能包含密码。双击这个错误号,光标就会定位在应用程序向导生成的Cmych8_1Set类实现文件的错误标识上。仔细阅读注释行文字说明,我们就会发现在GetDefaultConnect()函数中有一个连接字符串中可能包含用户密码。这里因为没有安全问题,我们可以注释#error标识的这段出错代码。重新编译运行应用程序,就会顺利通过编译并运行。在应用程序的界面中多了一些记录移动按钮和记录菜单。虽然应用程序还不能进行数据显示、修改的操作,但是应用程序已与数据库相关联,要想显示和修改数据还要做下面所述的工作。8.4创建数据库应用程序2.显示数据我们首先分析应用程序向导生成的Cmych8_1Set类,然后介绍一种简单的显示数据库中记录的方法。(1)分析应用程序代码

打开应用程序向导生成的框架类,我们可以看到支持数据库的应用程序多了一个Cmych8_1Set类,在Cmych8_1Set类中有一组数据成员:

longm_bianhao; //职工编号

CStringW m_xingming; //职工姓名

CStringW m_xingbie; //职工性别

CTimem_chusheng; //出生日期

float m_gongzi; //基本工资

CStringW m_zhicheng;//职称8.4创建数据库应用程序

这些数据成员与数据库中的各个字段相对应,这里我们称它们为字段数据成员或域成员。这些字段数据成员与数据库中的字段名一致并且类型匹配。字段成员用来保存某条记录的各个字段,是程序与记录集之间的缓冲区。当在记录集中滚动到某一条记录时,应用程序自动将当前记录的各个字段值拷贝到字段数据成员中。当用户要修改当前记录或增加记录时,程序先将各字段的新值放入字段数据成员中,然后调用相应的Cmch8_1Set类的成员函数把字段数据成员保存到数据库中。在字段数据成员与数据源之间有一个数据交换机制RFX(RecordFieldExchange)。CRecordset类的成员函数DoFieldExchange函数负责数据交换任务,在该函数中调用了一系列的RFX函数。8.4创建数据库应用程序Cmych8_1Set类的:DoFieldExchange函数代码如下:voidCmych8_1Set::DoFieldExchange(CFieldExchange*pFX){ pFX->SetFieldType(CFieldExchange::outputColumn);//RFX_Text()

RFX_Int()

这类宏依赖的是//成员变量的类型,而不是数据库字段的类型。//ODBC尝试自动将列值转换为所请求的类型

RFX_Long(pFX,

_T("[bianhao]"),

m_bianhao); RFX_Text(pFX,

_T("[xingming]"),

m_xingming); RFX_Text(pFX,

_T("[xingbie]"),

m_xingbie); RFX_Date(pFX,

_T("[chusheng]"),

m_chusheng

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论