[工学]1 第五章 Web数据库技术.ppt_第1页
[工学]1 第五章 Web数据库技术.ppt_第2页
[工学]1 第五章 Web数据库技术.ppt_第3页
[工学]1 第五章 Web数据库技术.ppt_第4页
[工学]1 第五章 Web数据库技术.ppt_第5页
已阅读5页,还剩151页未读 继续免费阅读

下载本文档

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

文档简介

1,第五章 Web数据库技术基础,2,主要内容,一.Web数据库基本概念 二.WEB服务器简介 三.ODBC,ADO与WEB数据库 四.ASP与数据库访问,3,电子商务是以Web网络技术和Web数据库技术为支撑的,Web数据库技术是电子商务的核心技术。 要开发基于Internet和Web的商务网站,必然要有后台数据库的支持,必须解决的问题是网页与后台数据库的连接和集成。,一.Web数据库基本概念,4,WEB数据库的基本概念,Web数据库系统包括: Web服务器 Web数据库 数据库接口(如CGI) CGI是Web服务器在调用外部程序时的参数规范协议,规定了一组标准的环境变量和参数格式,可以实现动态创建Web页面,处理HTML表单输入,并在Web和其他Internet服务之间架设沟通的渠道 CGI脚本是服务器端可执行程序,负责处理从服务器请求一个动态响应所必需的所有任务,4,两者可放在同一台计算机上,也可以放在不同的计算机上, 这主要取决于主机的性能和Web数据库提供服务的对象等。,5,WEB数据库的基本概念,Web数据库系统的工作原理: 客户端浏览器通过HTML表单收集用户输入信息,并通过Submit按钮提交表单 通过HTTP协议传递给Web服务器 服务器端通过CGI脚本分析信息,并转化为SQL命令,提交SQL服务器执行,5,6,WEB数据库的基本概念,Web数据库系统的开发要点: 编写HTML表单 根据传递参数的方式(GET/POST),CGI脚本从Web服务器设置的环境Query-String或标准输入Stdin获取用户提交的信息串 解码信息串 CGI脚本根据用户要求,访问数据库,并执行相应的数据库客户程序 将数据库客户程序获得的执行结果返回给标准输出Stdout,6,7,WEB数据库的基本概念,Web数据库服务器本身就是一个客户/服务器架构(C/S),这样数据库应用系统可分解为: 前台的客户端(请求) 中间的应用程序端 后台的服务器(响应),7,三者通过网络相连,8,WEB数据库的基本概念,客户端的功能: 建立或断开与服务器的连接 提交访问数据请求 等待接收结果或服务器发来的错误信息 数据的输入输出及验证 提供一个良好的用户界面,8,9,WEB数据库的基本概念,网络的功能: 保证客户及服务器的物理连接 支持多种网络协议,9,10,WEB数据库的基本概念,服务器端的功能: 管理多用户的数据库 管理用户权限及保证数据的安全性 管理和处理用户的请求 请求队列 响应请求 通知服务完成 返回结果 维护数据库 备份 恢复,10,11,WEB数据库的基本概念,客户端/服务器架构的特点: 将处理任务在客户与服务器之间分开 客户端提交请求 服务器响应请求,并将结果返回客户端 减少主机网络负荷 网络传输的只是客户请求及响应结果,而并非整个数据库 数据库与客户应用程序无关 数据库采用集中管理 客户端采用标准的SQL语句访问数据库 数据库平台与操作系统无关 维护数据库的完整性 数据库有完善的日志记录和数据库备份/恢复机制,11,12,WEB服务器与CGI,提供WWW服务的计算机被称为Web服务器 WWW服务是以超文本标识语言(HTML)与超文本传输协议(HTTP)为基础 Internet采用超文本和超媒体的信息组织方式 WWW系统体系结构 客户端/服务器模式(C/S)浏览器/服务器模式(B/S) 客户端浏览器与服务器之间通过TCP/IP建立连接 统一资源定位器(URL)实现了单一文档在整个Internet主机中的定位 客户端请求通过Web服务器的通用网关接口(CGI)实现与后台数据库的交互,12,13,WEB服务器与CGI,Web中客户机与服务器的对话过程: 向用户提供请求的方法(通常是以单击某个链接启动对话) 客户端将用户请求发送给指定服务器 服务器接收来自用户的请求 对用户请求进行合法性及安全性校验 针对请求获取并制作数据,包括使用CGI脚本为文件设置适当的MIME类型 服务器将结果发送给提交请求的客户机 客户端接收来自服务器端的返回结果,并在浏览器中以HTML文档格式加以显示,13,14,数据库(DB,DataBase):是存放数据的仓库。但所存放的数据并不是杂乱无章的,而是长期存储在某种存储介质上的有组织的、可共享的相关数据的集合。数据库中的数据具有较高的数据共享性、独立性、完整性及较低的数据冗余度。,数据库、数据库管理系统和数据库系统,15,数据库管理系统(DBMS,DataBase Management System):用来对数据库进行集中统一的管理,帮助用户创建、维护和使用数据库的系统软件,从这个意义上说,DBMS是用户与数据库之间的接口。 DBMS的功能 数据定义:DBMS提供数据定义语言(data definition language,DDL),用户利用DDL可以方便地对数据库中的数据对象进行定义。 数据操纵:DBMS提供数据操纵语言(data manipulation language,DML),用户通过DML实现对数据的检索、插入、修改、删除和统计等数据存取及处理功能。 数据库的运行管理:包括数据的完整性、安全性及并发控制的管理。 数据库的建立与维护:包括数据的输入、转换,数据库的转储、恢复、重组及性能检测和分析等。,数据库、数据库管理系统和数据库系统,16,数据库、数据库管理系统和数据库系统,17,E-R图中三种基本图素内涵如下: 实体(Entity):通常是现实世界中客观存在的可以相互区分的事物,例如一个学生、一台计算机等;也可以是抽象的概念,例如一场比赛、一门课程等。实体集是具有相同属性的实体集合。例如学校所有学生具有相同的属性,因此,学生的集合可以定义为一个实体集。 属性(Attribute):是描述对象的某个特性,如:学生实体可用学号、姓名、性别、出生日期等属性来描述;课程实体可用课程号、课程名、学分等属性来描述。 联系(Relationship):是实体间的相互关系。它反映了客观事物间相互依存的状态。,概念模型及其表示,18,联系(Relationship) 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系 两个不同实体集之间的联系有三种类型: 一对一联系(1:1):如果对于实体集A中的每个实体,实体集B中至多有一个实体(也可以没有)与之联系,反之亦然,则称实体集A与实体集B具有一对一的联系,记为1:1。 一对多联系(1:n):如果对于实体集A中的每个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多的联系,记为1:n。 多对多联系(m:n):如果对于实体集A中的每个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B具有多对多的联系,记为m:n。,概念模型及其表示,19,E-R模型的表示方法,概念模型及其表示,20,Web数据库,数据库是指按照一定的结构和规则组织起来的相关数据的集合,是存放数据的“仓库”。 将网络数据库定义为以后台数据库为基础的,加上一定的前台程序,通过浏览器完成数据存储、查询等操作的系统。 一个Web数据库就是用户利用浏览器作为输入接口,输入所需要的数据,浏览器将这些数据传送给网站,而网站再对这些数据进行处理。,21,Web不是传统意义上的物理网络,而是在超文本基础上形成的信息网 Web数据库技术就是在浏览器的网页上,通过Web服务器访问各种数据源的方法和技术,22,数据类型多样化:不仅是传统的数字、字符、文本等,还需要视频、音频、图形、图像、动画,HTML/XML、流数据等更复杂 数据结构新需求:结构化,半结构化、非结构化。 数据存储新需求:海量,多维性等 数据操作新要求:不仅包含通常意义下的插入、删除、修改、查询等,还需要互操作(例如视频快进操作等)、主动性操作、领域搜索浏览、时态查询等,还要能够进行自定义操作。 其他需求:领域需求,数据库应用新需求,23,文件服务器模型和域模型 文件服务器模型 以一台或几台服务器作为共享资源的主体 域模型 一个单位的计算机连接成一个域,每个域中的用户再分成若干个工作组。一个域中可以有若干个服务器和工作站,其中至少有一台服务器为域服务器(域控制器)负责域的集中管理。,网络应用结构模型,24,网络应用结构模型(续),客户机/服务器模式 C/S模式 把处理分配给客户机和服务器共同承担 三层C/S模式 B/S模式,客户机,功能服务器,数据库服务器,数据库服务器,Web 服务器,浏览器,25,Web访问数据库的一般方法 客户在浏览器中填写好表单,单击 “Submit”按钮。Internet按照http协议把信息传送到Web服务器,Web服务器执行表单指定的脚本,通过ODBC驱动程序或数据库直接驱动程序,连接到数据库,执行SQL指令。SQL指令的执行结果,以HTML代码的格式,传送给浏览器,Web数据库解决方案,26,常用的Web数据库解决方案,CGI (Common Gateway Interface) ASP(Active Server Pages) PHP ASP.NET,Web数据库解决方案(续),27,Web服务器,Web服务器执行表单指定脚本,通过ODBC或数据库直接驱动程序,连接到数据库,发送SQL指令。对SQL指令的执行结果,以HTML代码的格式,传送给浏览器 访问数据库的方法不同所用的Web服务器也不同 Web服务器实际上是一个软件,先要对它进行安装、测试,最后对它进行设置,以满足特定的要求,28,Web服务器与数据库的连接问题 服务器端方案,通过Web服务器端的脚本(服务器端脚本),实行数据库的连接,比如ASP、JSP、PHP等等。 客户端方案,数据库程序实现访问接口,客户端程序通过访问接口来访问数据库。,Web程序,数据库,29,基于Web的数据库访问技术,数据,用户,WWW Server,DBMS Server,Browser,30,常见的数据库应用系统及开发工具,连接Web服务器的数据库,31,脚本程序与数据库接口,服务器端脚本程序(Web程序) ASP脚本ASP程序 PHP脚本PHP程序 脚本程序中连接数据库需要相应的接口来完成 ODBC微软开发的一套统一的程序接口 ADO适用于脚本程序连接数据库,32,静态网页vs动态网页,静态网页 静态的HTML文本,存储在Web服务器中,直接由浏览器下载,浏览。 动态网页 页面由程序动态生成 代码在客户端执行(脚本VBScript,JavaScript) 代码在服务器端执行(ASP,PHP,JSP等),33,Web数据库,浏览器,Web服务器,浏览器,Web服务器,数据库,为Web服务器提供后台数据的数据库,称为Web数据库,Web技术,数据库技术,34,Web数据库是Web技术和数据库技术相结合的产物。网上订货、在线交易等电子商务平台都需要以Web数据库作为其基石。 随着Internet技术和应用的深入发展, Web数据库的开发与应用将越来越彰显其重要性。,5.1 Web数据库概述,35,网站数据库选择原则,Web程序设计中最复杂的就是Web数据库程序,其中涉及到以下几个方面的问题: 1. 最基本的html设计; 2. CGI程序的编写和调试。 3. 网络管理和客户协调; 4. 数据库程序的编写; 5. 客户机/服务器体系统的程序编写。,36,1数据库(Database) 数据库是指以一定的结构存储在计算机外部存储器上的相关数据集合。 为了便于数据的管理和检索,数据库中的大量数据必须按一定的逻辑结构加以存储,这就是数据“结构化”的概念。 数据库中的数据具有较高的数据共享性和较低的数据冗余度,以及较高的数据独立性和安全性,能有效地支持各种应用程序对数据进行的处理,并能保证数据的完整性、一致性和可靠性。,5.1.1 数据库与数据库管理系统,37,2数据库管理系统(DBMS) 对数据库进行管理的软件系统称为数据库管理系统,简称DBMS(DataBase Management System),在整个数据库系统中起着核心的作用。 它提供了对数据库中的数据资源进行统一管理和控制的功能,是应用程序与数据库中数据之间的接口。 DBMS包含了一系列软件,如数据描述语言及其翻译程序,数据处理语言及其编译程序,数据库管理例行程序等。,5.1.1 数据库与数据库管理系统,38,早期的数据库是按网状结构模型或层次结构模型来组织的,目前使用的数据库基本上是关系结果模型。关系模型是一种易于理解并具有较强数据描述能力的数据结构模型。 在关系模型数据库中,数据的逻辑结构是以二维表格的形式予以组织的,表中的每一行称为一条记录(Record),表中的每一列称为一个字段(Field)。 对关系模型的数据库进行管理的软件则称为关系型数据库管理系统RDBMS(Relational DataBase Management System)。,5.1.1 数据库与数据库管理系统,39,在RDBMS中,广泛使用结构化查询语言SQL(Structured Query Language)对数据库进行各种管理操作。SQL语言已成为操纵关系型数据库的国际标准。 目前,SQL语言仍在不断发展之中,各软件厂商提供的SQL语言并不完全符合国际标准,在具体实现方面也存在着一些差异。,5.1.1 数据库与数据库管理系统,40,Web数据库及其管理系统是Web 技术与数据库技术相结合的产物,是存放和管理可供在Internet上访问的大量信息的数据库系统。 Web数据库系统是基于先进的Browse/Server(浏览器/服务器)计算模式的信息服务形式,它将存放在Internet上的众多数据库服务器中的各种信息资源有机地组织起来,使得网络用户可以通过统一的Web浏览器界面随时随地访问这些信息。 Web数据库具体优点如下页:,5.1.2 Web数据库及其优点,41,集Web技术与数据库技术的优点于一身。 无需开发专门的客户端界面程序,可以大大节省用户的培训时间和费用。 通过Web方式访问数据库的标准统一。 可供用户随时随地访问,并不受所用计算机平台的限制。 可以动态更新网页的内容。,5.1.2 Web数据库及其优点,42,可以利用数据库管理系统的强大搜索功能,来帮助Web用户搜寻所需的信息。 可以实现各种网络应用,如电子银行、网上注册与登记、网上申报与纳税、网上查询与购物、在线股票交易与外汇买卖、在线订购机票和火车票等。,5.1.2 Web数据库及其优点,43,1Oracle 2IBM的DB2 3Informix 4Sybase 5SQL Server 6MySQL 7Access,二. WEB服务器简介,44,1利用CGI访问Web数据库 CGI(Common Gateway Interface)即公共网关接口,是较早实现访问Web数据库的技术,在商务网站的开发中起着重要的作用。 CGI实际上是用来在用户浏览器和Web服务器之间传递信息的中间件程序,适用于UNIX和Windows等多种服务器平台。 目前在商务网站的创建过程中,CGI程序常常被用来对HTML表单和后台数据库进行操作,例如利用CGI程序对数据库中的数据进行搜索、添加 和修改等。,5.2.4 访问Web数据库的几种技术,45,使用CGI方式访问Web数据库的工作过程是: 用户通过Web浏览器输入查询请求信息,浏览器通过HTTP协议向Web服务器发出相应的查询请求; Web服务器按照CGI协议激活CGI 程序,并由该程序向数据库管理系统发出SQL命令; 再将SQL命令的执行结果转化为HTML文档后提交给Web服务器,并返回给用户端的Web 浏览器。 使用CGI方式访问Web数据库的方式有不少缺点,例如不易开发和维护应用程序、功能有限、不易查错、执行速度较慢,并且不兼容HTML文档等。,1利用CGI访问Web数据库,46,公共网关接口 (CGI),CGI是Common Gateway Interface的缩写 物理上,CGI是一段程序,一种基于浏览器的输入,在Web服务器上运行的程序,提供同客户端HTML页面的接口 CGI接口因平台不同而不同,Windows平台的CGI称为Windows CGI Robert Denny从CGI处理Windows应用的需要出发,设计了实现Windows CGI的Web服务器WebSite。他还用VB4.0写了Windows CGI接口程序CGI32.BAS,为用户使用VB开发Windows CGI应用程序提供了一个框架,47,CGI原理,CGI操作流程 客户表单的一个URL指向一个CGI脚本 服务器接受请求, 按照那个URL,寻找指向的脚本文件,并执行该脚本 脚本执行基于数据访问的操作 脚本产生Web服务器能够理解的输出结果 服务器接受来自脚本的输出,把它传回给浏览器,公共网关接口 (CGI),48,CGI原理(续),CGI的运行环境与编程语言 Web服务器和CGI程序的标准框架适合UNIX系统和微软字符方式 微软视窗环境下的WebSite使用另外一种特殊的技术,即利用INI文件来实现Web服务器和CGI程序间的数据交流 Robert Denny的CGI32.bas屏蔽了处理环境变量的所有细节,简化了用户的编程 CGI编程语言有: C/C+ 、PERL、TCL、VB等,公共网关接口 (CGI),49,IDC(Internet Database Connector)是Microsoft公司的Web服务器IIS所带的一个动态连接库,它通过ODBC接口实现对各种数据库的访问。 IDC由IDC脚本文件和HTML模板文件组成。 IDC脚本文件用来控制数据库的访问,其中包含了被访问的数据库名、用户名、密码等数据库连接参数及有关的SQL语句。 HTML模板文件则以直观的方式说明怎样将查询到的数据插入到Web页面。,2利用IDC访问Web数据库,50,IDC方式不仅可以查询数据库中的信息,也可以通过Web页面将数据存入数据库中。 注意:IDC仅支持Microsoft公司的Web服务器IIS,而不支持其他的Web服务器。,2利用IDC访问Web数据库,51,ADC(Advanced Database Connector)的特点是提供了ActiveX控件来访问数据库,并且其数据查询操作是在客户端浏览器完成的,因而需要在客户端安装ADC的ActiveX控件。 通过将服务器端大量数据库记录下载到客户端,即可在客户端浏览器直接浏览和查询数据,所以比较适用于需要频繁访问数据库的情形。,3利用ADC访问Web数据库,52,ActiveX 是Microsoft提出的一种软件标准,也是Microsoft 一组有关软件的统称。 ActiveX 控件也称为OLE控件,是可以运行在Web页面上的程序组件。 ActiveX 控件采用面向对象方式编程,其执行效率较高。,3利用ADC访问Web数据库,53,ADO( ActiveX Data Object)是一组用于在ASP脚本程序中访问后台数据库的ActiveX数据对象。 使用ASP编程访问Web数据库时,必然使用ADO对象。ASP和ADO相结合为Web数据库的访问提供了一个完全的解决方案。 无论采用Oracle、Informix、SQL Server、Access或其他数据库系统,只要该数据库系统具有与之对应的ODBC或OLE DB驱动程序,就可以通过ADO对象方便地对其进行访问。,4利用ASP与ADO访问Web数据库,54,目前情况下,一般可以通过编写服务器端的ASP程序来实现客户端浏览器对Web数据库的访问,这将涉及到ADO对象、ODBC(Open DataBase Connection)或OLE DB(Object Linking and Embedding Database)驱动程序等多个相关技术与概念。,三.ODBC,ADO与WEB数据库,55,开放式数据库连接ODBC(Open DataBase Connection)是Microsoft倡导的数据库服务器连接标准,它向访问Web数据库的应用程序提供了一种通用的接口。 在其支持下,一个应用程序可以通过一组通用的代码实现对各种不同数据库管理系统的访问。 通过ODBC访问数据库的方式是基于SQL的,各种应用程序透过不同的ODBC驱动程序可以实现利用SQL语言对不同数据库系统的访问。,5.3.1 ODBC简介,56,采用ODBC的最大好处就是应用程序可以采用任何一种支持ODBC的工具软件独立开发,而不受所访问的数据库管理系统的约束。 下页图展示了对于各种支持ODBC接口的数据库管理系统,每一个应用程序只需要编写一组代码,即可通过不同ODBC驱动程序访问对应的不同数据库。,5.3.1 ODBC简介,57,58,ODBC数据源是指可以通过ODBC接口访问的具体数据库信息。 ODBC数据源及其驱动程序一般通过操作系统的数据源管理器来进行安装与管理。 在Windows XP中,打开“控制面板”,“性能和维护”,“管理工具”,“ODBC数据源”,即可打开“ODBC数据源管理器”对话框,如下页图所示。,5.3.2 ODBC数据源管理器,59,60,选择其中的“用户DSN”选项卡或“系统DSN”选项卡,可以看到已经默认安装的用户数据源名或系统数据源名。 每一个DSN(Data Source Name)都包含了访问某个数据库所需的具体信息,包括所使用的ODBC驱动程序和版本,数据源的网络地址,以及数据源的描述和可选的额外参数等。 通常情况下,还可从DSN中取得数据库配置、用户安全和定位信息,且可获取用户的登录注册信息等。,5.3.2 ODBC数据源管理器,61,选择其中的“驱动程序”选项卡则可查看系统已经安装的各种ODBC驱动程序,如下页图所示。 如果所需的驱动程序还没有安装,或者需要更新某个驱动程序的版本,可以通过访问Microsoft公司的网站,下载并安装所需的驱动程序。,5.3.2 ODBC数据源管理器,62,63,通过ODBC来连接和访问数据库,首先需要建立一个与已有数据库连接的数据源DSN(Data Source Name)。 数据库驱动程序将使用DSN来定位和标识特定的数据库,并将信息从Web应用程序传递给该数据库。 通过Windows的ODBC数据源管理器,可以创建和配置系统DSN或用户DSN。,5.3.3 DSN的创建与设置,64,系统DSN允许所有的用户登录到特定的服务器去访问数据库; 而用户DSN则使用适当的安全身份验证,仅允许特定的用户登录到特定的服务器去访问数据库。 系统DSN和用户DSN信息都存储在Windows系统的注册表中。,5.3.3 DSN的创建与设置,65,举例: 说明如何创建和设置一个连接到Microsoft Access数据库的系统DSN,创建一个与其他数据库(如SQL Server等)连接的DSN的步骤是类似的。 假设用户磁盘上已有一个名为db1.mdb的Microsoft Access数据库,创建一个与此数据库连接的系统DSN的步骤演示。 演示与操作,对应各种操作界面。 教材P145P146。,5.3.3 DSN的创建与设置,66,创建和配置DSN后,访问相应的数据库时就无需指明数据库的实际存储位置,而只需要编写有关的SQL语句即可,其他事情将由ODBC自动完成,因为在配置DSN时已经完成了这项工作。 如果数据库的实际存储位置发生了变化,也只需修改相应的DSN配置,而不用改变对数据库进行访问的Web应用程序。,5.3.3 DSN的创建与设置,67,ADO(ActiveX Data Object)是ASP内置的、用于访问Web数据库的ActiveX服务器组件。 应用程序开发者可以将它与ASP结合起来,编写提供后台数据库信息的动态网页,并在客户浏览器端实现对Web数据库的查询、插入、更新和删除数据的操作。 ASP对数据库的访问是通过其ADO对象来实现的,ADO对象为开发者提供了一种简单、快捷、高效的数据库访问方法。,68,ADO对象可以包含在ASP脚本程序中来完成对数据库的连接,并使用SQL语言对数据库进行各种操作。 与IDC和ADC方式不同,采用ADO实现对数据库的访问更类似于编写数据库应用程序。 ADO将绝大部分的数据库操作功能封装在7个对象及有关的数据集合之中,通过在ASP脚本中调用这些对象和数据集合来执行相应的数据库操作。,5.3.1 ADO技术概述,69,ADO建立了基于Web方式访问数据库的脚本编写模型,它不仅支持各种大型数据库的核心功能,而且还支持许多数据库所特有的功能。 ADO的主要优点是易用、高速、占有内存和磁盘空间较少,所以非常适合作为服务器端的数据库访问技术。 相对于访问数据库的CGI程序而言,ADO方式是多线程的,在出现大量并发请求时,也可以较好地保持服务器的运行效率,并可通过连接池技术及对数据源的控制,提供与远程数据库的高效连接与访问。,5.3.1 ADO技术概述,70,除此之外,在Web应用程序设计方面,由于ASP和ADO支持面向对象的程序设计方式,使得所编写的程序更为有效也更容易维护。 同时,由于通过ADO及其支持的SQL语言可以访问各种不同的数据库系统,因而进一步省去了开发人员学习各种不同SQL语言系统的麻烦。,5.3.1 ADO技术概述,71,ADO对象组件主要提供了7种对象和4种集合供程序设计师使用。 通过这些对象和集合,可以方便地建立与Web数据库的连接、执行SQL查询并处理查询得到的结果。,5.3.2 ADO对象简介,72,1Connection对象 负责创建一个ASP脚本与指定数据库的连接。在对某个数据库进行各种操作之前,首先需要与该数据库建立连接。 2Command对象 负责对数据库提出操作请求,通常是传递和执行指定的SQL命令。该对象的执行结果将返回一个Recordset记录集。 3Parameter对象与Parameters集合 负责传递Command对象在执行时所需的SQL命令参数。,5.3.2 ADO对象简介,73,4Recordset对象 用来保存和表示从数据库中取得的记录集合,并允许访问者进一步对其中的记录和字段进行各种操作。 5Field对象与Fields集合 表示Recordset对象指定的数据字段,每个Field对象对应于Recordset对象中的一列。,5.3.2 ADO对象简介,74,6Property对象与Properties集合 提供有关的属性值,供Connection对象、Command对象、Recordset对象或Field对象使用。 7Error对象与Errors集合 提供连接或访问数据库时发生的错误信息,每当发生错误时,一个或多个Error对象将出现在Connection对象的Errors集合中。,5.3.2 ADO对象简介,75,如下图所示:,5.3.3 ADO对象之间的关系,76,Connection对象和command对象都可以产生所需的recordset对象,而由recordset对象通过fields数据集合可以取得指定的field对象的值。 此外,藉由Connection对象通过errors数据集合可获得ADO执行时发生的错误信息。,5.3.3 ADO对象之间的关系,77,还可以看出,在各种ADO对象中Connection对象和recordset对象是最为重要的对象,几乎在每次访问数据库时都需要用到。 Field对象只是recordset对象中的子对象,而其他对象则根据不同的需要是可选的(optional)。,5.3.3 ADO对象之间的关系,78,Connection对象负责与数据库实际的连接动作,其他所有对象都必须依赖该对象实现的连接才能发挥各自的功能。 Connection对象和command对象以及recordset对象都是属于ADO组件的对象,因而都需要使用server对象的createobject方法来创建一个实例之后方可使用。 创建此对象实例的语句格式为: Set conn = Server. CreateObject(“ADODB.Connection“) 需要注意的是:在该实例创建之后,实际上尚未连接到任何数据库实体,只是完成了连接数据库之前的宣告动作。,5.4 Connection对象,79,1Open方法 负责与具体数据源的连接,其语法如下: Connection.Open ConnectionString, UserID, Password, Options 参数说明: ConnectionString包含用于连接数据库的信息字符串,该参数是由分号分隔的一系列argument=value语句;,5.4.1 Connection对象的方法,80,1Open方法 UserID表示登录数据库时所指定的用户账号; Password表示登录数据库时所指定的用户密码; 注意:如果ConnectionString参数中包含了用户账号和密码,而同时又给出了UserID和Password参数,那么UserID和Password的参数值将覆盖ConnectionString参数中的对应信息。,5.4.1 Connection对象的方法,81,2Execute方法 负责执行指定的SQL语句或存储过程,其语法如下: Connection. Execute CommandText, RecordsAffected, Options 参数说明: CommandText:表示所要执行的SQL命令文本,包括insert、delete、update等数据操作命令以及select数据查询命令等。 此外也可以通过CommandText参数执行create table、alter table或drop table等数据表定义命令。 RecordsAffected:表示每次对数据库的操作要求返回的记录条数。,5.4.1 Connection对象的方法,82,参数说明: Options :表示CommandText的类型,具体参见下表。,2Execute方法,83,3Close方法 负责关闭一个已经启动的连接对象及其相关的对象,其语法如下: Connection. Close 注意:关闭一个连接对象并非将其从内存中删除,可以在此后再次打开。 若要将被关闭的对象从内存中完全删除,可将该对象变量设置为nothing。,5.4.1 Connection对象的方法,84,4BeginTrans方法 负责启动一个新的事务,并返回一个变量用以表示这个事务的等级。其语法如下: Connection. BeginTrans 或者 Level= Connection. BeginTrans(),5.4.1 Connection对象的方法,85,5CommitTrans方法 负责存储在当前事务中发生的变更并结束当前事务。 对于已启动的对数据库进行操作的事务来讲,其功能是将修改后的数据库中的数据再次保存到数据库中去。 其语法如下: Connection. CommitTrans,5.4.1 Connection对象的方法,86,6RollbackTrans方法 负责取消在当前事务中发生的任何变更并结束当前事务。 对于已启动的对数据库进行操作的事务来讲,其功能是将对数据库中数据的修改恢复到事务启动前的状态,即取消本次事务对数据库中数据的修改。 其语法如下: Connection. RollbackTrans,5.4.1 Connection对象的方法,87,1ConnectionTimeout属性 用来设置connection对象的open方法与数据库连接的最长等待时间,其缺省值为15秒。 如果将此值设置为0,则系统会一直等待直至连接成功。 该属性的设置必须在连接前或取消连接之后。 设置该属性的语法为: Connection. ConnectionTimeout = seconds,5.4.2 Connection对象的属性,88,2CommandTimeout属性 用来设置connection对象的execute方法执行时的最长等待时间,其缺省值为30秒。 如果将此值设置为0,则系统会一直等待直至执行结束。 该属性的设置必须在execute方法执行之前。 设置该属性的语法如下: Connection. CommandTimeout = seconds,5.4.2 Connection对象的属性,89,3Provider属性 用来取得或设置connection对象提供者的名称,即内定的数据库管理程序的名称。 ADO缺省的Provider属性值为MSDASQL(Microsoft OLE DB Provider for ODBC),它负责管理所有以ODBC方式连接的数据库。 设置该属性的语法如下: Connection. Provider = ProviderName,5.4.2 Connection对象的属性,90,4Mode属性 用来设置修改数据库的权限, 设置该属性的语法如下: Connection. Mode = ModeValue 各种Mode属性的ModeValue值参见下页表。,5.4.2 Connection对象的属性,91,92,5.5.1 Command对象概述 Command对象负责对数据库提供操作请求,即负责发出指定的SQL命令。 使用command对象可以查询数据库并返回recordset对象中的记录。,5.5 Command对象,93,Command对象必须经过一个已经建立的连接来发出SQL命令对数据库进行操作。 这些命令包括INSERT、DELETE、UPDATE等数据操作命令以及SELECT数据查询命令等。 此外,也可以通过command对象传递CREATE TABLE、ALTER TABLE或DROP TABLE等数据定义命令。 创建此对象实例的语句格式为:,5.5.1 Command对象概述,94,Command对象同样需要使用server对象的createobject方法来创建一个实例之后方可使用。 创建此对象实例的语句格式为: Set comm = Server. CreateObject(“ADODB.Command“) 通常使用Command对象的execute方法来执行SQL命令,用以调用数据库的存储过程,或创建一个recordset对象。,5.5.1 Command对象概述,95,下面的命令序列说明了command对象的属性和方法的一般使用形式。 Set conn=server.createobject(“ADODB.Connection”) Set comm=server.createobject(“ADODB.command”) Comm.activeconnection=conn Cmandtext=SQL_statement Comm.Execute,5.5.1 Command对象概述,96,第1行命令用来创建一个用于与数据库连接的connection对象实例; 第2行命令用来创建一个command对象的实例; 第3行命令使得command对象实例与创建好的connection对象实例conn相联系; 第4行命令用于设定要执行的SQL语句; 第5行命令用于执行所设定的SQL语句,以完成对所连接数据库的操作。,5.5.1 Command对象概述,97,1ActiveConnection属性 用来连接Connection对象。 该对象可以是一个已经建立好的connection对象实例名称,也可以是一个包含数据库连接信息的字符串。 设置该属性的语法如下: Command. ActiveConnection = ActiveConnectionValue,5.5.2 Command对象的属性,98,2CommandText属性 用来表示对数据库进行操作的命令文本。 它可以是若干个SQL语句或一个存储过程的名称。 设置该属性的语法如下: Command. CommandText = SQL_statements,5.5.2 Command对象的属性,99,3CommandType属性 用来设置Command对象的类型。例如可将该属性设置为AdCmdText或AdCmdTable等。 设置该属性的语法如下: Command. CommandType = CommandTypeValue,5.5.2 Command对象的属性,100,4CommandTimeout属性 用来设置Command对象的Execute方法运行的最长等待时间。与connection对象的connectionTimeOut属性的意义相同。 设置该属性的语法如下: Command. CommandTimeout = seconds,5.5.2 Command对象的属性,101,Recordset对象负责从数据库中取得所需的记录数据并创建一个记录集合。 在访问数据库时,一般先通过connection对象来建立与数据库的连接,然后再按所需的要求创建一个recordset记录集。 再利用recordset对象的各种属性和方法,并可使用SQL命令对数据库进行浏览、添加或删除记录、更新数据和分页显示等处理。,5.6 Recordset对象,102,Recordset对象也需要使用Server对象的createobject方法来创建一个实例之后方可使用。 创建Recordset对象实例的语句格式为: Set rs = Server. CreateObject(“ADODB. Recordset“),5.6 Recordset对象,103,1Recordset对象的Open方法 用来打开指定的数据源,并从中提取Recordset记录集中的数据内容,其语法如下: Recordset. Open Source, ActiveConnection, CursorType, LockType, Options 参数说明: Source表示数据来源,可以是一个command对象名称、一段SQL命令、一个指定的数据表名称或一个存储过程。,5.6.1 Recordset对象的方法,104,参数说明: ActiveConnection表示所使用的连接,可以是一个已建立的connection对象实例名称,或者一个包含数据库连接信息的字符串(connectionString)。 CursorType表示打开recordset时所使用的游标类型,该参数值可以是03,请参加下页表的具体展示。,5.6.1 Recordset对象的方法,105,106,LockType表示打开recordset时所使用的锁定状态,该参数值可以是03,详细情况请参见下页表所示。 Options与connection对象的execute方法所涉及的参数描述相同。具体请参见前面讲述。,5.6.1 Recordset对象的方法,107,108,2Recordset对象的其他方法 下页表列出了recordset对象的其他的各种常用的方法。 注意:这些方法大多与记录指针的移动和记录的添加、删除和更新有关。,5.6.1 Recordset对象的方法,109,5.6.1 Recordset对象的方法,110,5.6.1 Recordset对象的方法,111,1BOF属性 用来判断当前的记录指针是否位于Recordset记录集的第一条记录之前,如果位于第一条记录之前,BOF属性将返回逻辑值True,否则BOF属性将返回逻辑值false。 2EOF属性 用来判断当前的记录指针是否位于Recordset记录集的最后一条记录之后,如果位于最后一条记录之后,EOF属性将返回逻辑值True,否则EOF属性将返回逻辑值false。,5.6.2 Recordset对象的属性,112,3RecordCount属性 返回recordset记录集中记录的条数。当ADO无法确定记录条数时,该属性返回值为-1。 4MaxRecords属性 用来设置Recordset记录集从数据库源中一次最多可以取得的记录条数。 5PageSize属性 用来当recordset记录集中记录条数相当多,需要分页显示时,返回每页所显示的记录条数。,5.6.2 Recordset对象的属性,113,6PageCount属性 recordset记录集中记录条数相当多时,返回Recordset记录集中记录分页显示的总页数。 7AbsolutePage属性 该属性通常和pageSize属性一起使用,用来取得当前记录指针在recordset记录集中的绝对页数。,5.6.2 Recordset对象的属性,114,8CursorType属性 用来设置记录指针在Recordset记录集中移动的方向,可以有AdOpenForwardOnly、 AdOpenKeySet、 AdOpenDynamic、 AdOpenStatic4种设置, 详细情况请参见Recordset对象的CursorType参数设置。 9LockType属性 用来设置是否将记录写入数据库,可以有AdLockReadOnly、 AdLockPessimistic、AdLockOptimistic和 AdLockBatchOptimistic 4种设置。 具体参见Recordset对象的LockType参数设置。,5.6.2 Recordset对象的属性,115,在Recordset对象中,包含了由Field对象组成的Fields数据集合,每个Field对象对应于Recordset 记录集中的一列(或称为一个字段)。 在使用ADO访问数据库时,利用Field对象与Fields数据集合可以实现对每一条记录的每一个字段分别进行处理。 1Field数据集合常用属性 Field对象和Fields数据集合的一些常用属性参见下页表所示。,5.6.3 Field对象与Fields数据集合,116,117,2Field数据集合的应用 每个Field对象对应于recordset记录集中的一列(或称为字段),下面举例说明在访问数据库时常用Fields数据集合的应用。 假如在连接数据库后,已由recordset对象取得了名为Rs的记录集,则: Rs.MoveFirst 表示将Rs记录集中的指针指向第一条记录 Rs.Fields.Count 表示Rs记录集中列(字段)的个数 Rs.Fields(0).Name 表示Rs记录集中第1列(字段)的名称 Rs.Fields(0).Value 表示Rs记录集中第1列(字段)的内容,5.6.3 Field对象与Fields数据集合,118,2Field数据集合的应用 Rs.Fields(1).Name 表示Rs记录集中第2列(字段)的名称 Rs.Fields(1).Value 表示Rs记录集中第2列(字段)的内容 Rs.Fields(2).Name 表示Rs记录集中第3列(字段)的名称 Rs.Fields(2).Valu

温馨提示

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

评论

0/150

提交评论