版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/7/22,1,动态网页设计技术(ASP) (电子教案) (源码网整理:),2020/7/22,2,HTML语言简介 1.什么是HTML语言? HTML语言又称为“超文本标记语言”, 它用HTML元素标注文本或图形的属性。 2.作用:该语言用来通过浏览器生成静态 网页。 3.编辑、运行环境: 用HTML语言所编写的文件称作HTML文 件,它是应用最为广泛的网页文件。HTML 文件可以在任何一个文本编辑器内编辑, 如记事本、写字板、Word等。保存时只需 保存为*.html或*.htm格式即可。运行时需,2020/7/22,3,要安装网络浏览器软件,如微软公司的IE 只要双击HTML文件
2、生成的浏览图标即可在 IE中打开网页文件。 4.HTML文件结构 HTML文件结构很简单,由头部和身体 部分组成,结构严谨清晰,语句如下: 头部内容 身体内容 ,2020/7/22,4,HTML文件是由英文单词或字母和,/等组 成的。其中英文单词或字母称为元素,/等称 为标识符,是用来标识元素的。有些元素是成对 出现的,即 。第一个表示元 素开始起作用,第二个表示这种元素的作用结束; 有些元素是单个的,用来表示特定的作用。 对于绝大多数的元素,都含有自身的若干属 性,这些属性的作用是对该元素作用域中的内容 进行进一步的修饰和限制,其语法格式为:。 元素可以嵌套使用,如: 。元素不分大小写,可以
3、混写。 注:空格表示为 接下来将介绍主要元素的用法。,2020/7/22,5,5.HTML元素 HTML元素用在文档的开头和结尾,它 用来标识一个HTML文件。 格式为: 其中包含HTML文件的头部和身体部分。 6.head元素和title元素 head元素用来标注一个html文件的头部, 里面常嵌入title元素。title元素的作用是 用于设置显示在浏览器窗口中标题栏中的文 字,这便于浏览者初步了解页面的内容,语 法为:页面窗口标题。,2020/7/22,6,7.body元素 body元素用于标注文件的正文部分,即 显示在浏览器中窗口中的内容。语法为: 。该元素的常用属性有 bgcolor
4、、background、text等。 8.标题元素 语法为:。其中n的取值 为1到6。n的值越大,标题的字体越小。属 性有align。 9.段落元素 语法为:。表示其作用 域中的内容开始一个新的文本段落。,2020/7/22,7,10.换行元素 语法为: 用于开辟一个新行。 注意:元素和元素的作用都是另起 一行,不同在于元素有空行,而元 素无空行。 11.水平线分隔符元素 语法为: 单独出现,无结束标记, 无作用域。用于在页面中插入一条水平线。 属性有size、align、width。 12.字体元素 语法为: 用于设置 字体。属性有face、color、size。,2020/7/22,8,1
5、3.字符修饰符元素 成对出现,对作用域中的文字起修饰作 用,常用的有:b黑体(加粗) i斜体 u下划线。 14.列表元素 和两种,均要成对出现,作用 域内为列表内容,表示一个列表结构。其中, 在列表项目前加符号“”,在列表项 目前加上序号1,2,。一般结构为: 文本串 文本串 ,2020/7/22,9,其中元素用来引出列表项目。 15.表格元素 语法为: 表格标题信息 ,2020/7/22,10,其中元素用于创建表格, 元素用于构成表格标题,为 行元素,用于生成一行,为列元素,用 于生成一列。 创建表格时,按照行优先的顺序从第一 行开始创建,在每一行中,从左到右创建各 个列。 元素中常用的属性
6、有border、 bordercolor、width、height、align。 16.插入图片元素 语法为: 该元素无结束标记,无,2020/7/22,11,控制内容,用于插入一副图片。该元素的属 性有src、align、alt。 17.超链接元素 语法为:文本或图像 该元素的 属性有href、target。如果是图片形式的超 链接,则语法为: 18.滚动字幕或图片元素 语法:文字或图片 该元素属性有direction、behavior。 19.框架集元素 用于创建框架结构,可以相互嵌套。,2020/7/22,12,注意:该元素不能嵌套在body元素中,只能 嵌套在html元素中,原因是其功
7、能与body元 素类似,均是对页面主窗口内容进行标注。 语法为: 属性:cols(按列划分)、rows(按行划分)。 在框架集元素中要嵌套框架元素 ,用来定义子框架。其属性有name、 src、noresize。 20.表单元素 用于生成表单,如填写注册信息等,最 终该表单要被提交处理。 语法为: 中间为表 单成员。属性有name、action、method。,2020/7/22,13,一个表单通常含有如下成员:文本框、 密码框、单选框、复选框、下拉列表框、文 本域框和按钮。如下图所示。,2020/7/22,14,动态网页设计技术(ASP),第一章 网络程序设计概述 第二章 Active Se
8、rver Pages初步 第三章 ASP脚本语言VBScript 第四章 Request和Response对象 第五章 Session和Application对象 第六章 Server对象 第七章 ASP存取数据库 第八章 ASP的内置组件 第九章 数据库存取组件,2020/7/22,15,第一章 网络程序设计概述,1.1 网络程序设计语言的产生背景 Internet是20世纪发展最快、规模最 大、涉及面最广的科技成果之一。它又称 互联网,起源于1969年美国国防部高级研 究计划局协助开发的ARPANET网。1987年, 在美国国家科学基金会的推动下,将之主 要从军事用途转向科学研究和民事用途
9、, 形成了今天的Internet主干网雏形NSFNET。 在我国,中科院计算机网络信息中心 于1994年4月正式接入Internet网,近几年,2020/7/22,16,来Internet得到了飞速发展,每年连入In- ternet的计算机数目成指数增加。 目前网络提供的服务主要是WWW浏览、 电子信箱、FTP服务、新闻组、Telnet远程 登录等服务,其中WWW浏览和E-mail是最常 用的服务。 WWW(World Wide Web)又称万维网,起 源于1989年欧洲粒子物理研究室。在WWW发 明之前,Internet主要用于科学研究和军 事目的。自从1989年WWW引入后,使Inter-
10、 net迅速走进千家万户,成为普通人查找资 料、交流、娱乐的一个离不开的手段。现,2020/7/22,17,在蓬勃发展的电子商务和远程教育等基本 上都是基于WWW的。WWW之所以能风靡全世 界,主要是它提供了超文本的多媒体文件 形式,人们利用超链接就可以方便地访问 分布在世界各地的丰富多彩的资源。 最初的WWW网页都是用超文本标记语言 HTML实现的,要实现最基本的网页,HTML 是最简单的也是最丰富的。可是,它也存 在一定的缺陷,那就是用HTML制作的网页 是静态网页。所谓静态网页,就是网页内 容在设计时就定好了,如果想修改或维护 网页,只能修改源代码。,2020/7/22,18,另外,最初
11、的WWW 以提供信息资源为 主,人们上网的主要目的是交流和查看资 料。在这期间,它和普通的应用软件还是 有区别的,比如学校管理软件、银行系统 软件、财务管理软件等。这些系统软件一 般也是基于网络的,但它们是C/S(Client/ Server)架构的。 C/S架构有一个缺陷,在 客户端需要安装软件,而且不具有开放性。 而WWW最大的好处就是具有开放性,客户端 只要有浏览器就行,也就是说,只要有能 上网的计算机就行。因此,基于B/S(Brow- se/Server)架构的软件系统就成为趋势,,2020/7/22,19,如现在网上流行的电子商店、远程教育系 统、办公系统等。 开始,人们利用CGI(
12、通用网关接口) 来实现网上数据库管理,但是CGI有点太 难掌握了,除了专业人员,普通用户很难 掌握。因此,产生一种使用简单、功能强 大的网络程序设计语言就势在必行了。在 这种背景下,ASP、PHP和JSP就应运而生 了。 1.2 目前主要的网络程序设计语言 目前,广泛使用的网络程序设计语言 有ASP、PHP和JSP。它们基本上都是把脚,2020/7/22,20,本语言嵌入到HTML文档中。它们的特点 是:ASP学习简单,使用方便;PHP软件 免费,运行成本低;JSP多平台支持,转 换方便。 1.2.1 ASP概述 ASP的全称是Active Server Pages, 是微软推出的用以取代CG
13、I(Common Gatew- ay Interface)的动态服务器网页技术。由 于ASP简单易学,又有微软的强大技术支持, 所以目前ASP使用非常广泛,很多大型的站 点都是用ASP开发的。 ASP目前可以在Windows NT、Windows,2020/7/22,21,2000上运行,在Windows98上安装了个人 Web服务器PWS4.0(Personal Web Server 4.0)后也可以运行。它对客户端没有任何 特殊的要求,只要有一个普通的浏览器就 行。 ASP文件就是在普通的HTML文件中嵌入 了VBScript或JavaScript脚本语言。在ASP 中,脚本语言是在服务器
14、端运行的,当客 户请求一个ASP文件时,服务器就把该文件 解释成标准的HTML文件发过去。在服务器 端运行的好处是:第一,可以不受客户端 浏览器的限制;第二,可以很方便地和服,2020/7/22,22,务器交换数据,比如读取数据库。 ASP提供了几个内部对象和内部组件, 利用它们可以很方便地实现表单上传、存 取数据库等功能。除此之外,还可以使用 第三方提供的专用组件实现发送E-mail、 文件上传等功能。 ASP程序的优点: ASP所使用的VBScript脚本语言直 接来源于VB语言,非常容易掌握。 把脚本语言直接嵌入到HTML文档中, 不需要编译和连接就可以直接解释运行。 利用ADO组件可以
15、轻松存取数据库。,2020/7/22,23,面向对象编程,可扩展ActiveX S- erver组件功能,也可以使用第三方提供 的组件。从理论上说,可以实现任何功能。 不存在浏览器兼容的问题。 可以隐藏程序代码,在客户端仅可 以看到由ASP输出的动态的HTML文件。 ASP程序的缺点: 运行速度比起HTML程序来运行较慢, 这是因为每当客户端打开一个ASP网页时, 服务器都须将该ASP程序从头到尾重读一 遍,并加以解释执行,最后再送出标准的 HTML格式文件给客户端,从而影响了运行,2020/7/22,24,速度。 有的网络操作系统不支持ASP文件或 者支持得不好,用ASP开发的Web程序一般
16、 最好选用Windows NT或Windows 2000操作 系统。 1.2.2 PHP概述 PHP开始是一个用Perl语言编写的简单 程序,PHP程序可以运行在Unix、Linux或 者Windows操作系统下,对客户端浏览器也 没有特殊要求,不过,它的运行环境安装 比较复杂。PHP也是将脚本描述语言嵌入 HTML文档中,它大量采用了C、Java和Perl,2020/7/22,25,语言的语法,并加入了各种PHP自己的特征。 它也是在服务器端执行的,不受客户端浏 览器的限制,存取数据库也比较方便。 PHP程序的优点: PHP是免费的,对于许多要考虑运行 成本的商业网站来说,尤为重要。 开放源
17、码,所有的源码和文档都可 以免费复制、编译和传播。 多平台支持,可以运行在Unix、Li- nux或Windows操作系统下。 在服务器端执行,不受客户端的限 制。,2020/7/22,26,执行效率高,同ASP相比,PHP占用 的系统资源比较少,执行速度比较快。 PHP程序的缺点: 因为没有大公司的支持,前途可能 不如ASP、JSP等辉煌。 运行环境安装相对比较复杂。 相对于ASP来说,学习起来可能要 稍微复杂一些。 1.2.3 JSP概述 JSP的全称是Java Server Pages,它 是由太阳微系统公司提出、多家公司合作 建立的一种动态网页技术。该技术的目的,2020/7/22,2
18、7,是为了整合已经存在的Java编程环境,结 果产生了一种全新的足以和ASP抗衡的网络 程序设计语言。 JSP最大的优点是开放的、跨平台的结 构。它可以运行在几乎所有的服务器系统 上,对客户端浏览器的要求很低。 JSP和ASP的区别是:在ASP中,每次访 问一个ASP文件,服务器都要将该文件解释 一遍,然后将标准的HTML文档发送到客户 端;但在JSP下,当第一次请求JSP文件时, 该文件将被编译成Servlet并由Java虚拟机 执行,以后就不用再编译了,编译后运行,,2020/7/22,28,能够提高执行效率,这是它的另外一大特 点。 JSP程序的优点: 多平台支持,可以在几乎所有的服 务
19、器系统上运行。 编译后运行,能够大大提高执行效 率。 JSP采用Java技术,而Java做为一个 成熟的跨平台的程序设计语言,几乎可以 实现任何想实现的功能。 JSP程序的缺点: 开发运行环境相对于ASP来说,稍微,2020/7/22,29,复杂些。 相对于ASP的VBScript脚本语言来说, Java语言学起来稍微复杂些。 1.3 小结 比较以上三种语言,可谓各有优点, 难分高下,具体使用哪种语言编程,全凭 个人的条件和爱好。 我们之所以选择ASP来学习,有以下几 个原因: 首先,ASP是微软的产品,和现在普通 使用的Windows系统和IE浏览器很容易兼容。 其次,ASP所使用的VBSc
20、ript脚本语言,2020/7/22,30,直接来源于VB语言,而VB语言本身就是 一个非常简单易学的语言。并且它的运行 环境的安装以及ASP文件的开发环境也很 简单。 最后,目前ASP发展最为成熟,网上 各种资源也最多,可以使大家更快地掌握。,2020/7/22,31,第二章 Active Server Pages初步,2.1 ASP的运行环境 ASP的运行环境可以选择如下安装: 如果是在Windows NT 4.0上运行ASP 文件,那么只需在服务器上安装IIS 4.0( Internet Information Server 4.0)后即 可运行ASP。 如果是在Windows 2000
21、 Server上运 行ASP文件,则Windows 2000本身已经支持 ASP了。 如果是在Windows 98上运行,需要,2020/7/22,32,安装个人服务器软件PWS 4.0(Personal W- eb Server 4.0)。 2.2 ASP的语法简介 以前编写网页时,一般都用HTML技术, 但编写的网页多为静态网页,而若要开发 留言板、聊天室等动态网页,就需要用CGI 等技术,非常复杂,工作量也很大,而现 在使用ASP技术就很容易了。 简单地说,ASP文件就是在标准的HTML 文件中嵌入了VBScript或JavaScript脚本 语言。 其实以前开发网页时也经常用到脚本,2
22、020/7/22,33,语言,只不过以前的脚本语言是在客户端 运行的,客户端浏览器必须支持它才行, 而ASP的脚本语言是在服务器端运行的, 这是它的重要特点。它先把ASP文件编译 成标准的HTML文件,然后再传送到客户 端,因此不用管客户端的浏览器是否支持 VBscript或JavaScript技术,由ASP开发出 来的Web页面,均可以正常显示。 2.2.1 ASP文件的基本组成和约定 一个简单的ASP程序可以包括以下3个 部分: 普通的HTML文件,也就是普通的Web,2020/7/22,34,页面内容。 服务器端Script程序代码:位于 内的程序代码。 客户端的Script程序代码:位
23、于 内的程序代码。 说明: ASP约定,所有的Script程序代码 都必须放在或 符号之间。 在ASP中,VBscript是默认的脚本 语言,如果要在ASP网页中使用其他的脚本 语言,可以用以下的方法切换:,2020/7/22,35,脚本语言 为VBScript 或 脚本语 言为JavaScript 在以后的学习中,我们都使用系统 默认的VBScript脚本语言。 由于ASP是在服务器端执行的,所 以像VBScript的用户界面方法(如Input- Box和MsgBox函数)在ASP中都不能使用, 因为它们都是在客户端执行的。 2.2.2 一个简单的ASP文件,2020/7/22,36,清单2
24、-1 2-1.asp 显示来访时间 一个简单的ASP程序 欢迎您光临我的主 页 % n=Year(date() y=Month(date() r=Day(date(),2020/7/22,37,sj=“您来访的时间是:“ 注意:SQL语言也不区分大小写! 要查询记录,需要用Connection对象 的Execute方法打开一个Recordset对象, 即将查询到的记录放到记录集中,然后, 就可以在记录集中通过移动记录指针来显 示不同的记录。 下面举例说明查询记录的具体用法。 清单7-1 7-1.asp 显示数据库的记录 ,2020/7/22,176, 显示数据库示例 网络导航 % Dim db
25、 Set db=Server.CreateObject(“ADODB. Connection”) db.Open“Dbq=“Driver=Microsoft Ac-,2020/7/22,177,cess Driver(*.mdb)” Dim strSql,rs strSql=“Select * From link Oder By link_id Desc” Set rs=db.Execute(strSql) % 添加新记录 % do while not rs.Eof,2020/7/22,178,% ” target=“new” ”删除 ”修改,2020/7/22,179, 7.2.4 利用In
26、sert语句添加新记录 我们可以利用Insert语句向数据表中,2020/7/22,180,添加新记录,语法如下: Insert Into 表名(字段名1,字段名2, )Values(字段值1,字段值2,) 例如: Insert Into link(name,URL,intro) Values(“中国教育网”,“”,“中 国教育部网站”) 说明: 在Insert语句中,字段名和字段值一定 要前后对应,类型也要一致。如果字段 值是文本、备注或日期类型,一定要加,2020/7/22,181,引号。 在本例中link_id是自动编号,它会随 着记录的增加自动加1,不必赋值,否 则反而会出错。 在用I
27、nsert添加时,可以只添加部分字 段,在这种情况下,如果在创建表时设 定了缺省值,则取缺省值;如果没有设 定缺省值,但允许字段为空时,则值为 空。我们在建立数据库时基本上是取默 认设置,默认允许字段空值。 如果某字段既没有设置默认值,又不允,2020/7/22,182,许为空,却没有给该字段赋值,就要出 错误了,切记。 利用ADO向数据库中添加记录,方法 很简单,只要利用Connection对象的Ex- ecute方法即可。 清单7-2 7-2.asp 添加新记录 添加新记录示例,2020/7/22,183, 添加新网站 网站名字 ,2020/7/22,184, 网站网址 网站简介 ,202
28、0/7/22,185, “ ”and Request (“URL”)“ ”and Request(“intor”),2020/7/22,186,“ ” Then Dim db Set db=Server.Createobject(“ADODB. Connection”) db.Open“Dbq=“” Dim strSql,varName,varURL,varIntro varName=Request(“name”) varURL=Request(“URL”) varIntro=Request(“intro”),2020/7/22,187,strSql=“Insert Into link(nam
29、e,URL, intro,submit_date) Values(“” Dim varLink_id,strSql varLink_id=Request.QueryString(“link_ id”) strSql=“Delete From link Where link_id =”Driver= Microsoft Access Driver(*.mdb)” % 在实际开发中,由于考虑到程序移植 后的路径问题,常常利用Server对象的M- appath方法将虚拟路径转变为实际的物理 路径。上面的程序修改后如下: %,2020/7/22,271,Dim db Set db=Server.Cr
30、eateObject(“ADODB.C- onnection”) db.Open“Dbq=“Driver=Microsoft Access Driver(*.mdb)” % 这种连接方法有一个很大的好处,那 就是程序移植到别的服务器上后,马上就 可以使用,因此这是比较常用的一种连接 方法。,2020/7/22,272,创建有ODBC数据源的连接 现在以address.mdb数据库为例,该 数据库的数据源名称为addr,下面是创建 有ODBC数据源连接的例子: 程序中也可以省略Dsn,直接写数据,2020/7/22,273,源,上述例子改为: 这种方法书写简单,也不容易出错, 更重要的是不管数据
31、库放在哪里,只要设 置一下数据源,程序不要改,因此也是一 种比较常用的方法,麻烦的是如果要移植,2020/7/22,274,程序的到另外的服务器上,需要重新设置 数据源。 (源码网整理:) 下面举例说明最常用的SQL数据库的 连接方法,SQL数据库和Access数据库的 连接方法基本一样,只是个别参数写法不 同。 在建立连接之前,假设已经有一个SQL 数据库Database,名称为sqltest,数据库 登录帐号为jjshang,登录密码为12345, ODBC数据源名称为test。 创建没有ODBC数据源的连接,2020/7/22,275,SQL数据库也可以不设置数据源,例 子如下: 创建有
32、ODBC数据源的连接 如果设置了数据源test,连接方法如,2020/7/22,276,下: 同连接Access数据库一样,程序中的 参数也可以省略,上述程序可写为: %,2020/7/22,277,Dim db Set db=Server.CreateObject(“ADODB.C onnection”) db.Open “test”,“jjshang”,“12345” % 9.4.2 Connection属性 Connection属性有很多属性,有的用 处不大,但有的却是比较常用。Connect- ion对象的常用属性如下表所示。,2020/7/22,278,2020/7/22,279,下
33、面介绍几个常用的Connection对象 的属性。 (1)CommandTimeout 该属性用来设置Connection对象的E- xecute方法的最长执行时间。比如当执行 查询操作时,如果时间到了仍然无法正确 执行,将结束该操作。 其默认值为30秒,如设定为0,则会,2020/7/22,280,无限期地等待直到执行。下面例子是将 CommandTimeout的最长时间设置为60秒。 该属性有时是有用的,如果服务器的 速度比较慢,因为时间的限制无法执行E- xecute,就可以修改该属性值。 (2)ConnectionString 该属性用于指定Connection对象的数 据库链接信息。
34、除了可以使用Connection 对象的Open方法打开数据库外,也可以使 用Connection对象的ConnectionString属,2020/7/22,281,性来打开数据库。例子如下: (3)ConnectionTimeout,2020/7/22,282,该属性用于指定Connection对象的O- pen方法与数据库连接的执行截至时间。 当时间到了数据库还没有正确连接上,就 停止执行。 该属性的默认值为15秒,如果设定为 0,则表示无限制等候直到Open方法完成 为止。下面的例子将默认值设置为30秒。 ConnectionTimeout同CommandTimeout 一样,如果服务
35、器的速度比较慢,可以设 置连接时间长些。,2020/7/22,283,(4)DefaultDatabase 一般的数据提供者只能提供一个数据 库,有的数据库提供者却能提供多个数据 库,用该属性可以在多个数据库中指定默 认的数据库。 (5)Mode 该属性用来设置连接数据库的权限, 利用该属性就可以在打开数据库时限制数 据库的连接方式,比如,只读或只写。如 果不设置,则可读可写。 Mode属性的取值和说明如下表所示。,2020/7/22,284,例子如下: % Dim db Set db=Server.CreateObject(“ADODB.C- onnection”) db.Mode=1 设置
36、Mode属性为只读,2020/7/22,285,db.Open“addr” % 该属性还是比较有用的,若不想修改 数据库,就可以设置该属性为只读,安全 性好。 (6)Version 该属性最简单,用于显示ADO对象的 版本信息。举例如下: 9.4.3 Connection对象的方法 Connection对象有很多方法,都比较,2020/7/22,286,有用,其中Open方法和Execute方法是最 常用的两个方法。 Connection对象的常用方法如下表。 (1)Open,2020/7/22,287,该方法用来建立Connection和数据库 之间的连接。只有用Open方法和数据库建 立连
37、接后,才可以继续进行各种操作。 (2)Close 该方法用来关闭一个已打开的Conne- ction对象及其相关的各种对象。它的作 用主要是用以切断Connection对象与数据 库之间的链接通道。当该通道被关闭后, 所有依赖该Connection对象的Command或 Recordset对象也将立即被切断关系,方 法如下:,2020/7/22,288, 说明:第二句用来从内存中彻底清除Con- nection对象db,也可以不写。实 际上,也可以不用该方法关闭对象, 因为当一个页面关闭后,Connect- ion对象会自动关闭。不过养成使 用完毕主动关闭的习惯还是很好的, 有时可以节省内存资
38、源。,2020/7/22,289,(3)Execute Execute方法用来执行数据查询等操 作。它的语法有两种: Set Recordset对象=Connection对象. Execute(SQL字符串) 或 Connection对象.Execute(SQL字符串) 第一种方法将返回一个Recordset对 象,第二种方法不返回Recordset对象。 当对数据库查询显示记录时需要用到记录 集,一般用第一种方法;而执行添加、删,2020/7/22,290,除和更新操作时不需要返回记录集,所以 一般用第二种方法。 对于第二种语法,还有一种形式: Connection对象.Execute SQ
39、L字符串, number 在这种形式中,可以添加一个参数n- umber,该参数用来返回此次操作影响的 记录条数。例如: % strSql=“Delete From users Where nam- e=李枚”,2020/7/22,291,db.Execute strSql,number Response.Write“共删除”&number&“条记 录” % (4)BeginTrans 该方法用来开始一个事务处理。语法 为: Connection对象.BeginTrans 所谓事务处理,简单地说,所有的数 据库操作都可以看做事务处理。当开始一 个事务处理后,就打开Web页面与数据库,2020/
40、7/22,292,的事务处理通道,此时可以从Web页面上 直接更新数据库内容,但是更新结果并不 马上真正反映到数据库中。只有在提交事 务处理结果后,数据库的内容才能被真正 更新,否则,所有的操作都无效。 (5)CommitTrans 该方法用于提交事务处理结果。语法 为: Connection对象.CommitTrans 只有执行该方法后,才将结束事务处 理通道并且真正更新数据库的内容。,2020/7/22,293,(6)RollbackTrans 该方法用于取消事务处理结果。语法 为: Connection对象.RollbackTrans 执行该方法后,将结束事务处理通道 并且取消当前事务处
41、理中的任何更新动作。 说明:BeginTrans、CommitTrans和Roll- backTrans结合起来使用将增强数 据库程序的可靠性。 9.4.4 事务处理 为什么要引入事务处理呢?实际上对,2020/7/22,294,于一般的小型的程序,不用事务处理也没 关系,发生错误后大不了重新来一次,可 是对于银行、医院等机构,是绝对不允许 出现错误的。例如:银行在进行转帐操作 时,要将甲帐户的2000元钱转到乙帐户中, 一般分两步操作,先从甲的帐户去掉2000 元,然后在乙的帐户增加2000元。假如第 一步执行完毕后突然发生意外,第二步无 法正确执行,那么岂不是甲帐户的钱少了, 而乙帐户的钱
42、并没有增加。解决问题的办 法是这两步操作必须都正确执行,如果有,2020/7/22,295,一步不能正确执行,就都不执行。 而BeginTrans、CommitTrans和Roll- backTrans就是用来解决这样的问题的。 当利用BeginTrans开始一个事务处理后, 此后的所有更新都是暂时的,只有利用C- ommitTrans提交事务处理结果后,才真正 更新数据库中的信息。如果中间发生错误, 没有提交事务处理结果,则所有的更新都 无效。 事务处理的使用很简单,举例如下: 清单9-3 9-3.asp 事务处理,2020/7/22,296, 事务处理用法示例 % Dim db,strCo
43、nn strConn=“Dbq=“Driver=Microsoft A- ccess Driver(*.mdb)” Set db=Server.CreateObject(“ADODB.,2020/7/22,297,Connection”) db.Open strConn On Error Resume Next db.BeginTrans strSql=“Delete From users Where name=李枚” db.Execute(strSql) strSql=“Insert Into users(name,t- el,E-mail)Values(李枚,88888888, )” db
44、.Execute(strSql),2020/7/22,298,If db.Errors.Count=0 Then db.CommitTrans Else db.RollbackTrans End If % 9.5 Command对象 Command对象又称命令对象,主要用 来对数据库进行查询,它把查询的结果存,2020/7/22,299,储在Recordset对象中,然后可以通过ASP 语言将Recordset对象中存储的数据显示 出来。 Command对象是介于Connection对象 和Recordset对象之间的一个对象,它主 要通过传递SQL指令对数据库提出操作请 求,把得到的结果返回
45、给Recordset对象。 Command对象依赖Connection对象,因为 Command对象必须经过一个已经建立的C- onnection对象才能发出SQL指令。 Command对象在实际开发中用的并不多,,2020/7/22,300,不过,在利用参数查询方面却非常有用。 开发一个程序,经常要处理上百万条或更 多的记录,这时候速度就非常重要。而利 用Command对象的参数查询方法就可以大、 大提高速度。 9.5.1 建立Command对象 建立Command对象很容易,语法如下: Set Command对象=Server.CreateObj- ect(“ADODB.Command”)
46、 用ActiveConnection属性指定要利用 的Connection对象名称,语法如下:,2020/7/22,301,Command对象.ActiveConnection=Co- nnection对象 下面举两种建立Command对象的方法。 (1)通过Connection对象建立Comm- and对象 在建立Command对象之前,一般应该先 建立Connection对象,下面是建立Command 对象的详细例子: % Dim db,cmd Set db=Server.CreateObject(“ADODB.C-,2020/7/22,302,onnection”) db.Open“ad
47、dr” Set cmd=Server.CreateObject(“ADODB.C- ommand”) cmd.ActiveConnection=db % (2)直接建立Command对象 建立Command对象前也可以不明确建立 Connection对象,方法如下: % Dim cmd,2020/7/22,303,Set cmd=Server.CreateObject(“ADODB.C- ommand”) cmd.ActiveConnection=“addr” % 虽然上述程序没有明确建立Connection 对象,但还是要建立隐含的一个Connection 对象。由于没有明确建立,所以就无法
48、使 用Connection对象的一些功能。 9.5.2 Command对象的属性 Command对象的属性是非常重要的,常 用的属性如下表所示。,2020/7/22,304,(1)ActiveConnection 该属性用于指定Connection的连接对 象,表示该Command对象通过哪个Connec- tion对象对数据库进行操作。语法为: Command对象.ActiveConnection=C-,2020/7/22,305,onnection对象 如果没有明确建立Connection对象, 则为: Command对象.ActiveConnection=数 据源名称字符串 (2)Com
49、mandText 该属性用于指定数据查询信息,指示 将要对数据库执行的操作。这里所说的查 询信息泛指查询、添加、删除、更新记录 等各种数据库操作信息,不局限于查询记 录。,2020/7/22,306,事实上,CommandText不仅可以是各 种SQL语句,还可以是数据表名或查询名 和存储过程名。语法如下: Command对象.CommandText=SQL语句 或数据表名或查询名或存储过程名 如果是数据表名,表示要查询整个数 据表的内容,一般用在需要查询显示所有 数据的时候,下面两句效果是一样的: % cmd.CommandText=“users” cmd.CommandText=“Sele
50、ct * From users”,2020/7/22,307,% (3)CommandType 数据查询信息可以是SQL语句或数据 表名或查询名或存储过程名。该属性用于 指定数据查询信息的类型,它告诉Command 对象数据查询信息是什么类型。语法如下: Command对象.CommandType=类型值,2020/7/22,308,下面是一个比较详细的例子: % Set cmd=Server.CreateObject(“ADODB.C- ommand”) cmd.ActiveConnection=db cmd.CommandType=1 cmd.CommandText=“Select * F
51、rom users”,2020/7/22,309,cmd.CommandType=2 cmd.CommandText=“users” % 也可以不指定CommandType的值,这 样将由系统自己判定,不过指定后可以节 省系统判定过程的时间,因而加快了运行 的速度。 (4)CommandTimeout 该属性指定Command对象的Execute方 法的最长执行时间。注意和Connection对 象的CommandTimeout属性比较,它是指定,2020/7/22,310,Connection对象的Execute方法的最长执 行时间。 该属性的默认值为30秒,若设定为0, 则表示永久等待,直
52、到执行。下面的语句 是将CommandTimeout设置为60秒。 如果服务器运行较慢,可以修改该属 性值。 (5)Prepared 该属性用于指定数据查询信息是否要 先行编译、存储。如果是经常要使用的查,2020/7/22,311,询语句,可以将它进行编译、存储,第一 次执行时会慢一些,下次再执行时,速度 可明显加快。语法如下: Command对象.Prepared=布尔值 True表示要将查询信息先编译存储, False反之。 9.5.3 Command对象的方法 Command对象的常用方法虽然不多, 但很重要,如下表所示。,2020/7/22,312,(1)Execute 该方法用来执
53、行数据库查询,包括查 询记录、添加、删除、更新记录等各种操 作。它和Connection对象的Execute方法 的功能很类似,几乎能完成所有的功能, 其语法也有两种: Set Recordset对象=Command对象.E- xecute 或 Command对象.Execute,2020/7/22,313,第一种方法将返回一个Recordset对 象,第二种方法不返回Recordset对象。 当对数据库查询显示记录时需要用到记录 集,一般用第一种方法;而执行添加、删 除和更新操作时不需要返回记录集,所以 一般用第二种方法。 在使用第一种语法时,还可以使用一 些参数,修改后的语法如下: Set
54、 Recordset对象=Command对象.E- ecute number,parameters,options 各参数的说明如下表所示。,2020/7/22,314,下面举一个例子,将输出本次删除操 作影响的记录数目,并指定查询信息是SQL 语句。 % Set cmd=Server.CreateObject(“ADODB.C- ommand”),2020/7/22,315,cmd.ActiveConnection=db cmd.CommandText=“Delete From users” Set rs=cmd.Execute number,1 Response.Write“共删除”&nu
55、mber&“条记录” % 说明: 因为需要用参数,所以采用Execute的第 一种语法。 参数都可以省略,但要用逗号留出空的 位置。 利用Options参数设置查询信息类型和利,2020/7/22,316,用CommandType设置查询信息类型效果 是一样的。 (2)CreateParameters 该方法用来创造一个新的Parameters 对象(参数对象),主要是进行参数查询时 使用,后面9.5.6将专门介绍。 9.5.4 利用Command对象存取数据库 前面已经学习了利用Connection对象 存取数据库,这里介绍利用Command对象 存取数据库的例子,例子只用最常用的属 性和方
56、法,尤其要注意Execute的用法。,2020/7/22,317,清单9-4 9-4.asp 利用Command对象进行 数据库的基本操作 Command存取数据库 % Dim db,strConn strConn=“Dbq=“Driver=Microsoft A-,2020/7/22,318,ccess Driver(*.mdb)” Set db=Server.CreateObject(“ADODB. Connection”) db.Open strConn Dim cmd Set cmd=Server.CreateObject(“ADO- DB.Command”) cmd.ActiveCo
57、nnection=db Dim rs,strSql strSql=“Select * From users” cmd.CommandText=strSql,2020/7/22,319,Set rs=cmd.Execute Do While Not rs.Eof Response.Write rs(“name”)&“” rs.MoveNext Loop strSql=“Insert Into users(name,tel, E-mail)Values(李枚,88888888,li- )” cmd.CommandText=strSql cmd.Execute strSql=“Update user
58、s Set tel=666-,2020/7/22,320,66666 Where name=李枚” cmd.CommandText=strSql cmd.Execute strSql=“Delete From users Where n- ame=李枚” cmd.CommandText=strSql cmd.Execute db.Close Set db=nothing % ,2020/7/22,321,9.5.5 非参数查询 在9.5.2节中介绍了CommandText的属 性,查询信息可以是SQL语句或者数据表 名或者查询名。SQL语句是应用最广泛的, 数据表名在查询记录时有时会用到,也很
59、 简单。但查询是什么呢? 查询其实就是可以在数据库中预先放 置的数据库查询信息,好像数据库中一张 虚拟的表,可以像在表里操作一样,进行 各种操作。在Microsoft Access 97中利 用查询可以执行几乎所有的操作,遗憾的,2020/7/22,322,是,在ASP里利用查询只能查询记录,不 能添加、删除记录。不过,由于利用查询 可以加快速度,所以要是经常需要从上万 条或更多的记录中查找信息,就能体会到 它的好处。 从参数方面划分,查询可以分为两种: 执行查询时不需要输入参数就是非参数查 询,而执行查询时需要输入参数就是参数 查询。 查询的概念是比较复杂的,但使用还 是比较简单的,本节先介绍非参数查询。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公关公司媒介管理制度(3篇)
- 2026年泰安新泰市事业单位初级综合类岗位公开招聘工作人员(76人)参考考试题库及答案解析
- 2026厦门国际银行福建宁德分行校园招聘备考考试题库及答案解析
- 读不完的大书第二课时
- 2026年赣州市第十中学春季学期顶岗教师招聘备考考试试题及答案解析
- 2026四川乐山马边彝族自治县妇幼保健计划生育服务中心招聘4人备考考试题库及答案解析
- 2026年上半年黑龙江省地震局事业单位公开招聘工作人员2人考试参考试题及答案解析
- 2026年上半年四川中医药高等专科学校第一批编外教职工招聘7人参考考试题库及答案解析
- 2026内蒙古直属机关(参公单位)遴选公务员考试参考试题及答案解析
- 2026年上半年大庆市事业单位公开招聘工作人员164人笔试参考题库及答案解析
- 2025年社区工作总结及2026年工作计划
- 南昌地铁培训课件
- GB/T 30104.104-2025数字可寻址照明接口第104部分:一般要求无线和其他有线系统组件
- 三年级上册数学第三单元题型专项训练-判断题(解题策略专项秀场)人教版(含答案)
- 湖南省娄底市新化县2024-2025学年高一上学期期末考试生物试题(解析版)
- GB/T 45629.1-2025信息技术数据中心设备和基础设施第1部分:通用概念
- 2025年中考历史开卷考查范围重大考点全突破(完整版)
- 学术诚信与学术规范研究-深度研究
- 《ETF相关知识培训》课件
- DB15-T 3677-2024 大兴安岭林区白桦树汁采集技术规程
- 2024年《13464电脑动画》自考复习题库(含答案)
评论
0/150
提交评论