登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書

『簡體書』Web数据库技术及应用(第2版)

書城自編碼: 3020709
分類:簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 李国红 秦鸿霞
國際書號(ISBN): 9787302469032
出版社: 清华大学出版社
出版日期: 2017-07-01
版次: 2 印次: 1
頁數/字數: 263/431000
書度/開本: 32开 釘裝: 平装

售價:HK$ 56.6

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
文明的冲突:东西方文明的第一次交锋(第2版)
《 文明的冲突:东西方文明的第一次交锋(第2版) 》

售價:HK$ 82.8
神经形态光子学 Neuromorphic Photonics
《 神经形态光子学 Neuromorphic Photonics 》

售價:HK$ 194.4
困顿与超越 : 心理学家的逆境人生与智慧指引
《 困顿与超越 : 心理学家的逆境人生与智慧指引 》

售價:HK$ 67.9
Web3时代的AI战略:构建BASICs框架,引领企业数字化转型
《 Web3时代的AI战略:构建BASICs框架,引领企业数字化转型 》

售價:HK$ 90.9
一岁一喜欢
《 一岁一喜欢 》

售價:HK$ 49.2
巨浪:生成式AI的史诗与现实
《 巨浪:生成式AI的史诗与现实 》

售價:HK$ 91.9
萧条中的生存智慧与策略(套装2册)
《 萧条中的生存智慧与策略(套装2册) 》

售價:HK$ 114.8
饮食的迷思:关于营养、健康和遗传的科学真相(2024修订版)
《 饮食的迷思:关于营养、健康和遗传的科学真相(2024修订版) 》

售價:HK$ 79.4

 

編輯推薦:
(1)基于Windows 7旗舰版 IIS架构,以Microsoft Access 2007、Microsoft SQL Server 2014、Microsoft Visual FoxPro、Microsoft Excel 2007为基本数据库管理系统,介绍不同数据库的基本知识与主要操作。(2)阐述Windows 7旗舰版下安装与设置IIS7的基本过程和创建不同数据库的ODBC系统数据源的操作方法,并分析与论述新架构下各种ODBC、OLEDB字符串应用于ASP来实现Web数据库管理的技术知识与理论方法。(3)作为教材,本书尽量避免只进行空洞的理论介绍,尽量针对不同的情况提供相应的应用实例,最终达到理论与实践的完美结合,以期激发读者的学习兴趣。(4)每章后面附有习题,以供读者练习;提供配套课件,读者可在清华大学出版社网站本书页面下载。
內容簡介:
本书在介绍数据库基本理论与知识的基础上,详细分析与阐述了利用HTML和ASP技术开发与管理Web数据库的理论与方法,并附有相应的网页代码。全书共分7章,第1章介绍数据库的基本知识,第2章介绍利用HTML组织Web网页的基本方法,第3章和第4章阐述利用ASP、VBScript和SQL等创建与管理Access数据库的相关理论与技术,第5章分析与论述基于Web的学生信息管理功能的设计与实现,第6章探讨基于Web的读者借阅系统的设计与实现,第7章探讨利用ASP访问SQL Server、Visual FoxPro、Excel等数据库以及在数据库中导入各类数据源的数据的技术与方法。
本书每章均附有适量思考题,可作为高等学校管理类或相关专业学生的数据库教材,也可作为网站开发和程序设计爱好者的参考书。
目錄
目录





第1章数据库技术概述

1.1数据管理技术与数据库系统

1.1.1数据管理技术

1.1.2数据库和数据库系统

1.1.3数据模型与数据模式

1.2关系数据库

1.2.1关系数据库的基本概念

1.2.2关系数据库设计

1.2.3数据表的基本操作

1.2.4数据库的完整性和安全性

1.3Access数据库

1.3.1创建数据库与数据表

1.3.2设置数据表的字段属性

1.3.3设置数据表的有效性规则和说明

1.3.4设置表间关系和参照完整性

1.4Web数据库

思考题

第2章HTML信息组织

2.1HTML的工作原理

2.2编辑HTML文件

2.2.1HTML文件的基本结构

2.2.2编辑网页正文

2.3建立超链接

2.4插入图像和水平线

2.5添加音乐和视频

2.6使用列表

2.7使用表格

2.8使用表单

2.9使用框架

思考题

第3章ASP与SQL基础

3.1ASP基础

3.1.1ASP工作原理

3.1.2ASP程序

3.2VBScript(ASP的脚本语言)

3.2.1ASP和脚本语言

3.2.2VBScript的基本元素

3.2.3流程控制结构

3.2.4过程与函数

3.2.5VBScript函数

3.3利用SQL和ODBC数据源操作数据库

3.3.1建立数据库和ODBC数据源

3.3.2建立数据表

3.3.3添加记录

3.3.4更新记录

3.3.5查询记录

3.3.6删除记录

3.3.7统计与计算

3.3.8事务处理

思考题

第4章ASP相关对象和组件

4.1Request对象和Response对象

4.1.1Response对象的基础知识及应用

4.1.2Request对象的基础知识及应用

4.2Server对象和Connection对象

4.2.1Server对象的基础知识及应用

4.2.2Connection对象的基础知识及应用

4.3RecordSet对象

4.3.1RecordSet对象的基础知识

4.3.2RecordSet对象的应用举例

4.4Command对象

4.4.1Command对象的基础知识

4.4.2Command对象的应用举例

4.5Application对象和Session对象

4.5.1使用Application对象为多个用户共享数据

4.5.2使用Session对象为每个用户保存数据

4.5.3Global.asa文件初始化应用程序

4.6Content Linking组件

4.6.1Content Linking组件的基础知识

4.6.2Content Linking组件的应用举例

4.7Ad Rotator组件

4.8Content Rotator组件

4.9Browser Capabilities组件

4.10Counters组件

4.11FSO组件

4.12其他对象和组件

思考题

第5章学生信息管理的设计

5.1学生信息管理概述

5.2学生记录增加

5.2.1用于增加学生记录的表单

5.2.2增加学生记录的处理

5.3学生记录浏览

5.4分页显示

5.5学生信息查询

5.5.1按学生姓名查询

5.5.2查询结果分页显示

5.5.3按选择的项目查询

5.6修改记录

5.6.1用于修改学生信息的查询表单

5.6.2学生信息的编辑表单

5.6.3学生信息的修改处理

5.6.4学生信息查询表单界面的刷新

5.7学生信息删除

5.8查看源代码

5.9学生信息管理界面

思考题

第6章读者借阅系统的设计与实现

6.1读者借阅系统概述

6.2读者管理

6.2.1建立读者借阅数据库与读者数据表

6.2.2增加读者

6.2.3读者信息浏览

6.2.4查询与修改读者信息

6.2.5删除读者信息

6.3图书管理

6.3.1建立图书数据表

6.3.2图书信息查询与管理

6.3.3添加图书信息

6.3.4修改图书信息

6.3.5图书记录删除

6.3.6图书信息的分类汇总、统计与计算

6.4借阅管理

6.4.1创建借阅表

6.4.2借书信息管理

6.4.3还书信息管理

6.4.4综合查询

6.5功能集成

6.6用户登录

6.6.1用户登录概述

6.6.2用户登录表单

6.6.3用户登录处理

思考题

第7章ASP访问各类数据库

7.1访问SQL Server数据库

7.1.1SQL Server数据库的建立与连接

7.1.2SQL Server数据库及数据库表的操作

7.2访问VFP数据库

7.2.1VFP数据库的建立与连接

7.2.2VFP数据库及数据库表的操作

7.3访问Excel数据库

7.3.1Excel数据库的建立与连接

7.3.2Excel数据库与数据库表的操作

7.4导入各类数据源的数据

7.4.1数据从一种数据源导入另一种数据源

7.4.2数据导入功能的设计与实现

思考题

参考文献
內容試閱
第2版前言
环境在变化,技术在进步,教材也要更新。《Web数据库技术及应用》于2011年9月由清华大学出版社正式出版,之后一直作为郑州大学管理工程学院工业工程、工程管理、电子商务和物流管理专业的本科教材使用,取得了较好的效果。教材在概述Web数据库基本理论知识的基础上,主要阐释Windows XP IIS架构下利用ASP访问Microsoft Access 2003、Microsoft SQL Server、Microsoft Visual FoxPro、Microsoft Excel 2003等各种数据库的技术、知识、方法和应用。由于微软自2014年起不再对备受关注和喜爱的Windows XP提供技术帮助,Windows 7及以上版本逐渐成为广为使用的操作系统。而且,包括Access、SQL Server等在内的数据库管理系统软件和Excel工作簿(数据库)软件都不断出现新的、更高的升级版本,尤其是Access和Excel以2007版为代表与2003版本有了较大的变化。因此,Web数据库的应用处于更新、更复杂的技术环境当中,与时俱进的《Web数据库技术及应用第2版》亟待出炉。本书除阐明数据库的基本理论与知识外,还主要基于Windows 7旗舰版 IIS架构,以Microsoft Access 2007、Microsoft SQL Server 2014、Microsoft Visual FoxPro、Microsoft Excel 2007为基本数据库管理系统,介绍不同数据库的基本知识与主要操作,阐述Windows 7旗舰版下安装与设置IIS7的基本过程和创建不同数据库的ODBC系统数据源的操作方法,并分析与论述新架构下各种ODBC、OLEDB字符串应用于ASP来实现Web数据库管理的技术知识与理论方法。新架构下的数据库基本操作过程和应用方式都与Windows XP IIS架构有明显的不同,有的数据类型(如日期型数据)的默认呈现格式也发生了变化,甚至原来在Windows XP IIS架构下能正常运行的ASP程序代码中也存在少部分与Window7旗舰版 IIS架构不兼容的情况,第2版中会说明这些变化并提供解决方案。与第1版相比,第2版主要有以下变化:(1) 所有HTML文件的扩展名由.htm改为.html。(2) 涉及学生的学号、出生日期数据,由适合于原来的在校学生改成基本适合于目前在校的学生。(3) 涉及Access数据库的操作从主要阐述Microsoft Office Access 2003版改为主要阐述和探讨2007版,Access数据库文件的扩展名也因此由.mdb改为.accdb;同样,涉及Excel数据库与数据表的操作描述及网页代码均由针对Microsoft Office Excel 2003版的*.xls文件改为针对2007版的*.xlsx文件;同时,ASP中连接数据库时采用的OLEDB连接字符串和ODBC连接字符串也改为适用于Access 2007创建的扩展名为.accdb的数据库文件和Excel 2007创建的扩展名为.xlsx的工作簿(数据库)文件;而且,涉及SQL Server数据库的内容都改成适用于Microsoft SQL Server 2014的操作描述。(4) 关于IIS的安装与配置,由介绍Windows XP下的IIS安装过程改为描述Windows 7旗舰版下IIS的安装,同时将原来随用随介绍的、分散在不同章节的IIS设置内容进行了集中论述和处理,并在有必要进一步说明的章节中进行简单的补充说明。(5) ODBC系统数据源的建立与设置方法,由原来阐述32位操作系统(Windows XP)下的设置过程调整为阐述64位操作系统(Windows 7旗舰版)下的设置。(6) 适当增加了关于ADO、OLEDB的描述,增加了ASP中关于OLEDB连接字符串的应用实例,相应地减少ASP中关于ODBC字符串的应用实例。(7) 对部分网页之间传递隐含数据的处理过程进行了简化,比如由隐藏的文本框传递特定的会话信息改为由Session对象存储与提供,从而对数据的处理流程及网页的程序代码进行了优化。(8) 少部分原来在Windows XP IIS下能正常运行的ASP网页程序代码,在Windows 7旗舰版 IIS下由于缺少相应组件而出现异常,对这一部分的内容提供了相应的解决方案。(9) 第7章中关于导入各类数据源的数据的描述,增加了VFP数据导入SQL Server数据库以及VFP数据导入VFP数据库的应用实例,并将原来相关数据源导入Excel和Access数据库的内容调整为数据导入功能的设计与实现。另外,第4章中删除了对IIS Log组件内容的阐述。(10) 对所有的图进行了重新绘制和调整。同第1版一样,第2版所述的所有网页代码均上机运行通过,书中第1、2、6章仍由郑州大学法学院图书馆秦鸿霞老师负责撰写整理,第3、4、5、7章仍由郑州大学管理工程学院李国红老师负责撰写整理。整理过程中,始终如一地坚持了技术的先进性、内容的新颖性、知识的实用性、理论的完整性和结构的合理性相结合的原则。作为教材,本书尽量避免只进行空洞的理论介绍,而是针对不同的情况提供相应的应用实例,最终达到理论与实践的完美结合,以期激发读者的学习兴趣。希望读者能通过实例的分析加深对知识点的认识和理解,通过对具体数据处理流程的学习提高其自身的逻辑判断与思维能力,通过上机设计网页代码和实现相应的功能而获得最大的收获与最满足的体验,并通过愉快的学习与体验进一步掌握数据库抽象的理论知识和精髓,达到举一反三、融会贯通、真相大白的目的。最后,感谢为本书出版付出了辛勤劳动的清华大学出版社的编辑和所有相关工作人员,同时感谢家人的帮助和理解。作者2017年1月
第1版前言
网络与数据库的结合使世界的面貌焕然一新。网上售票、网上办公、网上信息查询等实践活动无一不体现出现代信息社会的快速、高效和便捷。多少年前令人向往的工作方式和生活方式,如今已通通变成了神奇的现实。我们坚信,神奇现实之中必定有一股威力无比强大的力量,那就是网络和数据库;神奇现实之中也必定存在着一种前景十分诱人的技术,那就是Web数据库技术。 Web数据库是指基于BS(浏览器服务器)的网络数据库,它是以后台数据库为基础,加上一定的前台程序,通过浏览器完成数据的录入、查询、修改、删除、维护和使用等功能的系统。Web数据库功能的实现离不开Web数据库访问技术,包括CGI技术、ODBC技术、JDBC技术以及ASP、JSP、PHP技术。本书主要对ASP、ODBC等技术及其在Web数据库中的应用进行系统的分析和探讨。 本书将揭开网络和数据库的神秘面纱,详细解读Web数据库技术及其应用。本书将从数据管理技术入手,阐述与分析数据库的基本知识、HTML信息组织与设计、ASP与SQL操作Access数据库基础、ASP相关对象和组件、学生信息管理功能的设计与实现、读者借阅系统的设计与实现、ASP访问各类数据库(SQL Server、Visual FoxPro、Excel等的数据库)。其中,各部分的内容及每个知识点都提供了相关的示例和详细的说明,每个功能的实现都有详细的分析和相应的网页代码,使读者不但能知其然,而且能知其所以然。 本书中的示例都是作者潜心研究的结果,并经过了反复的上机验证。仿照书中所述方法和网页代码就可以开发出任意的基于Web的数据库应用系统或BS模式下的信息管理系统。其中,书中部分知识已连续几年作为管理科学与工程专业和技术经济与管理专业研究生信息资源管理课程的一部分内容得到试用,收到了非常不错的效果。 本书是在作者多年教学和科研工作的基础上完成的。第1、2、6章由郑州大学法学院资料室秦鸿霞老师撰写,第3、4、5、7章由郑州大学管理工程系李国红老师撰写。李国红老师是郑州大学的硕士生导师,多年从事数据库和管理信息系统的教学与科研工作,曾编著出版过《管理信息系统设计理论与实务》和《网络环境下的科学交流模式与规律》,发表了不少相关学术论文。秦鸿霞老师是一名资深馆员兼数据库专家,是《面向网络信息:数据库和搜索引擎》的副主编,主要从事读者信息咨询和图书资料管理工作,熟悉读者借阅管理业务及流程,并积累了有关学生和读者管理的丰富经验,发表了大量系统管理方面的学术论文,主持和参与完成了多项相关科研课题。 本书撰写过程中,参考了不少文献资料。尤其是大量的Internet文献资料及博友的文章,对本书的撰写提供了极大的帮助,在此对他们表示衷心的感谢。一些同类书籍在网上展示的目录资料对本书的内容编排也有深远的影响,对这些图书的作者如魏善沛、铁军、高晗、王承君等也表示深深的谢意。同时感谢为本书出版倾注了心血和汗水的清华大学出版社的编辑和所有相关工作人员。 全书叙述由浅入深,内容详略得当,既突出重点又兼顾知识的系统性,既重视理论阐述又注重功能实现,而且各种网页代码均在计算机上运行通过,每章之后都附有适量思考题。本书可作为高等学校管理类或相关专业学生的数据库教材,也可作为网站开发和程序设计爱好者的参考书。作者2011年4月


第3章ASP与SQL基础
3.1ASP基础
3.1.1ASP工作原理1. 基本概念
(1) 脚本。脚本是指嵌入到Web页中的程序代码,所使用的编程语言称为脚本语言。按照执行方式和位置的不同,脚本分为客户端脚本和服务器端脚本。客户端脚本在客户端计算机上被Web浏览器执行,服务器端脚本在服务器端计算机上被Web服务器执行。脚本语言是一种解释型语言,客户端脚本的解释器位于Web浏览器中,服务器端脚本的解释器则位于Web服务器中。静态网页只能包含客户端脚本,动态网页则可以同时包含客户端脚本和服务器端脚本。(2) 动态网页。动态网页是指网页内含有脚本语言程序代码,并会被服务器执行的网页。脚本由一系列脚本命令组成,如同一般的程序,可以将一个值赋给某个变量,将一系列命令定义为一个过程,还可以命令Web服务器将一些数据发送到客户端浏览器。浏览动态网页时,服务器要先执行网页中的程序,然后将执行的结果传送到客户端浏览器中,由于服务器执行程序时的条件不同,浏览器端最终看到的网页内容或效果也有区别。常见的文件扩展名为.asp、.aspx、.php、.jsp的网页属于动态网页。与动态网页相对应,不包含程序代码的纯粹用HTML语言编写的网页是静态网页,服务器不执行任何程序就把HTML页面文件传送给客户端的浏览器,任何时候在浏览器端看到的同一静态网页的内容和效果都是完全相同的。常见的文件扩展名为.htm、.html的网页属于静态网页。(3) ASPActive Server Pages是Microsoft开发的动态网页技术。它内含于IIS中,是一种Web服务器端的开发环境。通过在普通HTML页面中嵌入ASP脚本语言,可产生和执行动态的、交互的、高性能的Web应用程序。ASP和PHP、JSP一样被认为是目前最常见的主流动态网页开发技术之一(参见1.4节Web数据库)。ASP采用脚本语言VBScript或JScript作为自己的开发语言。2. ASP运行环境ASP是一种服务器端的脚本语言,只有在服务器环境下才能正常运行。服务器端只需在Windows NT或Windows 2000、Windows XP及更高版本的操作系统上添加和安装IIS组件即可(或在Windows 98上安装PWS),客户端只需有一个普通的浏览器软件就可以了。要使ASP正常运行,需要对IIS进行相关配置,比如,可根据需要设置网站物理路径即主目录、启用父路径、启用32位应用程序、创建虚拟目录、设置目录浏览权限、设置默认文档等,具体参见2.1节。
3. ASP执行过程ASP的执行过程如图31所示,其大致工作流程是: 客户端浏览器首先向服务器发送ASP文件请求,然后由服务器读取ASP文件内容,将要运行的ASP代码挑出来逐行解释执行,再将脚本的执行结果与静态HTML代码合并,形成最终的网页页面发送给客户端浏览器。具体来说,ASP的执行过程包括以下几个步骤:(1) 用户在浏览器的地址栏中输入一个ASP动态网页的URL地址,并按Enter键向Web服务器发送该URL地址对应的ASP文件请求;(2) Web服务器接收来自浏览器端的请求后,根据.asp的后缀名判断这是ASP请求,并从硬盘正确的目录或内存中读取相应的ASP文件;(3) 服务器端的ASP执行环境(应用程序扩展asp.dll)从头至尾查找、解释并执行ASP文件中包含的服务器端脚本命令,即解释和执行标记对以及和标记对之间的脚本(或代码),并将脚本的执行结果与静态HTML代码合并,形成一个最终的HTML文件(页面代码);(4) Web服务器将最终的HTML页面代码在HTTP响应中传送给客户端Web浏览器;(5) 用户的客户端Web浏览器解释这些HTML页面代码并将结果显示出来。
图31ASP的执行过程
4. ASP的特点ASP是Microsoft公司开发的服务器端的脚本环境,是目前非常流行的开放式的Web服务器应用程序开发技术。ASP既不是一种语言,也不是一种开发工具,而是一种技术框架,其主要功能是为生成动态、交互且高效的Web服务器应用程序提供一种功能强大的方法或技术。ASP代码,包括所有嵌在普通HTML中的脚本程序,都将在服务器端执行。当程序执行完毕,服务器仅将执行的结果返回给客户端浏览器,从而减轻了客户端浏览器的负担,大大提高了交互的速度。ASP具有以下一些特点:(1) 使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。(2) 无须compile编译,容易编写,可在服务器端直接执行。(3) 使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。(4) 与浏览器无关,用户端只要使用可执行HTML的浏览器,即可浏览Active Server Pages所设计的网页内容。Active Server Pages所使用的脚本语言(VBScript、JScript)均在Web服务器端执行,客户端的浏览器不需要能够执行这些脚本语言。(5) ASP能与任何ActiveX Scripting语言相容。除了可使用VBScript或 JScript语言来设计外,还可通过plugin的方式,使用由第三方提供的其他脚本语言,譬如 REXX(Restructured Extended Executor)、Perl(Practical Extraction and Report Language)、Tcl(Tool Command Language)等。脚本引擎是处理脚本程序的COM(Component Object Model)组件。(6) ASP的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。(7) 可使用服务器端的脚本来产生客户端的脚本。8 组件导向Objectoriented。组件是包含在动态链接库.dll或可执行文件.exe中的可执行代码,组件可提供一个或多个对象及对象的属性和方法,利用对象的属性与方法可以实现特定的功能。在Web服务器上安装了组件后,就可以从ASP脚本、ISAPI应用程序中调用该组件。9 ActiveX Server ComponentsActiveX服务器组件具有无限可扩充性。可以使用Visual Basic、Java、Visual C、COBOL等编程语言来编写所需要的ActiveX服务器组件。ActiveX组件是一个文件,文件中包含执行某项或某一组任务的代码,它作为基于Web的应用程序部分在Web服务器上运行。
3.1.2ASP程序1. 创建ASP程序
ASP文件的后缀是.asp,其中包含实现动态功能的VBScript或JScript语句,如果去掉那些VBScript或JScript语句,它和标准的HTML文件无任何区别。在ASP程序中,脚本通过分隔符将文本和HTML标记区分开来。ASP用分隔符来包括脚本命令。一个ASP文件中一般包含HTML标记、VBScript或JScript语句的程序代码,以及ASP语法。ASP程序可用记事本或其他文本编辑软件进行编辑与保存,扩展名为.asp。例如,文件aspfile.asp中的内容如下:
%@ Language=VBScript %
html
body
您访问本页面的日期是%=date%!br
您访问本页面的时间是%=time%!br
您访问本页面的日期时间是%=now%!
body
html
说明: 的作用是在ASP文件中指定本网页采用VBScript脚本语言,而、、表示服务器运行的代码,其功能分别为向浏览器端输出系统当前日期、当前时间、当前日期时间,其中,date、time、now都是VBScript的函数。假设aspfile.asp保存在主目录下,则运行结果如图32所示。
图32aspfile.asp文件的运行结果
2. 编写ASP程序的注意事项(1) 使用VBScript脚本语言时,字母不分大小写;使用JScript时区分大小写。本书采用VBScript作为脚本语言,不区分大小写,主要指对象名、属性名、变量名等本身构成的语法不分大小写,需注意属性值、变量值是区分大小写的;(2) 的位置是相对随便的,可以和ASP语句放在一行,也可以单独成为一行;(3) ASP语句必须分行书写,即每行只能写一个语句;(4) ASP语句过长时,可以直接书写,使之自动换行(不按Enter键),也可在按Enter键之前加下画线_,从而将一行写成多行;(5) 在ASP中,使用rem或单引号''来标记注释语句。
3.2VBScript(ASP的脚本语言)
3.2.1ASP和脚本语言ASP支持多种脚本语言,但需要事先声明才能使用。声明ASP所使用的脚本语言,通常有三种方法。1. 通过IIS指定一个默认的脚本语言在Internet信息服务IIS管理器中,单击窗口左侧面板的右三角形符展开目录树,选择Default Web Site,双击窗口中间面板Default Web Site主页中IIS区域的ASP图标见图25,弹出ASP设置区域见图26,可将脚本语言设置为VBScript或JScript,然后单击右侧面板的应用保存当前更改。系统默认的脚本语言为VBScript。2. 在ASP文件中加以声明要为某个网页指定脚本语言(例如指定为VBScript),可在网页文件的开始部分使用语句,而且该语句必须放在所有其他语句之前。3. 在标记中加入所需的语言指定网页中的某一部分采用特定的脚本语言,可使用与标记对。例如,指定在服务器端执行VBScript代码,可用以下形式:
script language="VBScript" runat="Server"
script
指定VBScript代码在客户端执行,可用以下形式:
script language="VBScript"
script
3.2.2VBScript的基本元素1. 数据类型
VBScript的数据类型为Variant型,也叫变体类型。大多数情况下,Variant类型会按照最适用于其包含的数据的方式进行操作。如a="1",VBScript会把a当成字符串对待,b=a 1则自动将a转换为整数变量再参与运算。Variant类型细分为多种子类型: Empty、Null、Boolean、Byte、Integer、Currency、Long、Single、Double、Date、Time、String、Object、Error。2. 运算符算术运算符:、-、*、、\、Mod、^。连接运算符: &。例如:
% money=56
strTemp="应收金额=" & money
%
关系运算符: 、=、、=。逻辑运算符: Not、And、Or、Xor、Eqv、Imp。优先顺序: 算术连接关系逻辑运算符。3. 常量常量是固定不变的数据,可以用Const声明。例如:
% const pi=3.1415926 %
4. 变量变量是其数据值可以发生改变的量,可以用Dim声明变量。例如:
% Dim strName, strPassword, a %
可以用强制显式声明变量。例如:
%@ language=VBScript %
% option explicit %
% Dim strUserName %
5. 数组可以用Dim声明数组。例如: Dim lngSum19, intCounters4,7。3.2.3流程控制结构1. 选择结构
选择结构有三种基本形式。第一种形式,当条件成立时执行语句序列,否则什么也不执行,其程序流程图和NS图如图33所示,基本表示形式如下:
If 条件 Then
语句序列
End If
图33选择结构(一)
第二种选择结构的程序流程图和NS图如图34所示,相应的VBScript语法结构如下:
If 条件 Then
语句序列1
Else
语句序列2
End If
图34选择结构(二)
第三种选择结构的程序流程图和NS图如图35所示,相应的VBScript语法结构如下:
If 条件1Then
语句序列1
ElseIf 条件2Then
语句序列2
ElseIf 条件nThen
语句序列n
Else
语句序列n 1
End If
图35选择结构(三)
例如,在如图36(a)所示的输入对话框中输入一个数值型数据,单击确定按钮,则运行结果如图36(b)所示。实现此功能的文件为chengji.html,代码如下:
htmlbody
script language="VBScript"
dim intgrade
intgrade=inputbox"请输入分数: "
If IsNumericintgrade Then
If intgrade0 or intgrade100 Then
msgbox"输入成绩有误!"
ElseIf intgrade60 Thenmsgbox"不及格!"
ElseIf intgrade70 Thenmsgbox"及格!"
ElseIf intgrade80 Thenmsgbox"中等!"
ElseIf intgrade90 Thenmsgbox"良好!"
Elsemsgbox"优秀!"
End If
Else
msgbox"输入的不是分数,而是字符!"
End If
script
bodyhtml
图36chengji.html的运行结果
说明: chengji.html中的代码功能是,弹出输入对话框,从键盘输入数据后,单击确定按钮,若输入的不是数值型数据,则在信息提示框中提示输入的不是分数,而是字符!; 若输入的是数值型数据,则依据数值的大小,相应地提示输入成绩有误、不及格、及格、中等、良好、优秀。
与之间是VBScript脚本,dim intgrade的作用是定义一个变量。intgrade=inputbox"请输入分数: "的作用是弹出输入对话框,从键盘输入数据后,单击确定按钮,输入的数据就保存至变量intgrade中。IsNumericintgrade的功能是测试intgrade的值是否为一个数值型数据,如果是数值型数据则返回逻辑真值。msgbox"输入成绩有误!"的作用是弹出输入成绩有误!的信息提示框,其余类推。
若chengji.html以及后面提到的beijingse.html、FunctionEndfunction.html或FunctionEndfunction.asp的代码不能正常运行,请在IE浏览器的工具菜单下选择Internet选项,在弹出的Internet选项对话框中选择安全选项卡,选中Internet图标后,单击自定义级别按钮,再在出现的安全设置Internet区域对话框中将设置区域脚本下的允许网站使用脚本窗口提示获得信息设置为启用,以后根据信息提示框的内容单击确定是按钮即可。
2. 多分支选择语句多分支选择结构的程序流程图和NS图如图37所示,多分支选择语句格式对应如下。
Select Case 表达式
Case 值1
语句序列1
Case 值2
语句序列2
Case 值n
语句序列n
Case Else
语句序列n 1
End Select
图37多分支选择结构
例如,在输入对话框输入黄紫或青之一,单击确定按钮时,显示器背景颜色变成相应的颜色。实现此功能的文件为beijingse.html,其代码如下:
htmlbody
script language="vbscript"
dim strcolor
strcolor=inputbox"请从下述颜色中任选一个输入: 黄、紫、青"
select case trimstrcolor
case "黄"
document.bgcolor="yellow"
case "紫"
document.bgcolor="purple"
case "青"
document.bgcolor="teal"
case else
msgbox "输入有误"
end select
script
bodyhtml
说明: 本代码的功能是先弹出输入对话框,然后从键盘输入黄紫青中的任一个字,再单击输入对话框的确定按钮,即可将页面背景色设置为对应的颜色。如果输入的是其他字符,则提示输入有误。strcolor=inputbox"请从下述颜色中任选一个输入: 黄、紫、青"的作用是弹出一个输入框,从键盘输入的内容被保存在变量strcolor中。trimstrcolor的作用是将strcolor所表示的字符型数据的前导空格和尾部空格去掉。3. 循环结构1) do while loopdo while loop是一种先判断后执行的当循环结构,其程序流程图和NS图如图38所示。其语法结构如下:
do while 条件
语句序列
loop
图38当循环结构(一)
例如,DoWhileLoop.asp中的代码如下,其运行结果如图39所示。
%
intnum=1
do while intnum=5
response.write "循环语句执行第" & intnum & "次循环br"
intnum=intnum 1
loop
%
图39DoWhileLoop.asp的执行结果
2) do loop whiledo loop while是一种先执行后判断的当循环结构,其程序流程图和NS图如图310所示,其语法结构如下:
do
语句序列
loop while 条件
图310当循环结构(二)
例如,DoLoopWhile.asp中的代码如下,其执行结果同图39(DoWhileLoop.asp的执行结果)。
%
intnum=1
do
response.write "循环语句执行第" & intnum & "次循环br"
intnum=intnum 1
loop while intnum=5
%
3) do loop untildo loop until是一种先执行后判断的直到型循环结构,其程序流程图和NS图如图311所示,其语法结构如下:
do
语句序列
loop until 条件
图311直到循环结构(一)
例如,DoLoopUntil.asp中的代码如下,其执行结果同图39(DoWhileLoop.asp的执行结果)。
%
intnum=1
do
response.write "循环语句执行第" & intnum & "次循环br"
intnum=intnum 1
loop until intnum5
%
4) do until loopdo until loop是一种先判断后执行的直到型循环结构,其程序流程图和NS图如图312所示,其语法结构如下:
do until 条件
语句序列
loop
图312直到循环结构(二)
例如,DoUntilLoop.asp中的代码如下,其执行结果同图39(DoWhileLoop.asp的执行结果)。
%
intnum=1
do until intnum5
response.write "循环语句执行第" & intnum & "次循环br"
intnum=intnum 1
loop
%
5 for循环结构for循环是一种步长循环结构,其程序流程图和NS图如图313所示,其语法结构如下:
for 变量=初值 to 终值 step 步长值
语句序列
next
图313for循环结构
例如,利用for next语句求1 4 7 10 100的值。要求输出结果中每行显示15个被加数,最后一行不超过15个被加数,如图314所示。该网页文件fornext.asp中的代码如下:
%
dim i,chuzhi,zhongzhi,buchangzhi,intnum,intsum
chuzhi=1''初值
zhongzhi=100''终值
buchangzhi=3''步长值
intnum=0''循环次数
intsum=0''和
for i=chuzhi to zhongzhi step buchangzhi
If ichuzhi Then
response.write " "
End If
response.write i
intsum=intsum i
intnum=intnum 1
If intnum15=CIntintnum15 Then
response.write "br"
End If
next
response.write "="
response.write intsum
%
说明: dim用于定义变量,''表示注释,i表示循环变量,for循环前的语句用于对相关变量赋初值,第一次执行for循环时,输出i的值,即输出1(i=chuzhi,chuzhi=1); 以后每次执行for循环时都输出加号 和i的值。每行的被加数达到15个后进行换行处理,即后面的被加数在下一行输出。If ichuzhi用于判断循环变量是否为初值,If intnum15=CIntintnum15用于判断每行输出的被加数是否达到15个,intnum表示循环的次数,Cintintnum15的作用是将intnum除以15后的结果取整,intnum15=CIntintnum15表示intnum能被15整除。intsum用于对每次循环时的i值进行累加,for next循环结束后,输出等号及总和。
图314fornext.asp的执行结果
6 for each循环for each循环的作用是针对指定的数组或对象集合中的每一个元素,重复执行循环体中的语句序列,其语法结构如下:
for each 元素 in 集合
语句序列
next
例如,文件foreach.asp的执行结果如图315所示,foreach.asp中的内容如下:
OL
% for each k in request.servervariables %
lib%=k%=b%=request.servervariablesk%
% next %
OL
图315foreach.asp的执行结果
说明: servervariables是request对象的集合之一,服务器可根据request.servervariables集合获取所需信息,以便做出不同的反应。上述代码的功能是以编号列表的形式显示request.servervariables集合包含的所有成员及相应的值,k是request.servervariables集合中的元素(被称为环境变量),也可写成。对应元素(环境变量)的值可以用request.servervariablesk表示,可写成。3.2.4过程与函数1. sub过程
过程是用来执行特定任务的独立的程序代码,可以由sub和end sub来定义,其基本语法结构如下:
sub 过程名参数1,参数2,
end Sub
其中,参数用于在调用程序和被调用过程之间传递信息,可以是常数、变量或表达式。即使不传递参数,过程名后的圆括号也不能省略。在sub过程中,可以在需要的地方使用exit sub语句退出sub过程。在程序中,可以调用定义好的sub过程。调用sub过程可以使用以下两种方式之一: call 过程名参数1,参数2, 过程名 参数1,参数2,
其中,参数与sub过程中定义的参数在数据类型、顺序上对应一致。例如,subendsub.asp(或subendsub.html)的运行结果如图316所示,subendsub.asp(或subendsub.html)中的代码如下:
script language ="VBScript"
call output"张三",1,"一"
output "李四",2,"三"
call output"王五",0,"二"
output "赵六",0,"特"
sub outputstrtext,i,k
If i=1 Then
msgbox strtext "先生:您好!恭喜您荣获" k "等奖"
ElseIf i=2 Then
msgbox strtext "女士:您好!恭喜您荣获" k "等奖"
Else
msgbox strtext "同志:您好!恭喜您荣获" k "等奖"
End If
end sub
script
图316subendsub.asp的运行结果
2. Function函数函数和过程一样,是用来执行特定功能的独立的程序代码,但函数被调用时会返回一个值。函数由Function和End Function定义,其基本语法结构如下:
Function 函数名参数1,参数2,
函数名=表达式
End Function
其中,参数是函数调用时传递的常数、变量或表达式,不传递参数时函数名后面的圆括号不能被省略,函数名=表达式用于为函数设置返回值,可以使用Exit Function语句从需要的地方退出Function函数。函数可以被调用,调用时直接引用函数名和对应的参数即可,即: 函数名参数1,参数2,。注意参数要放在一对圆括号中,并与Function定义的函数名及其参数在数量、顺序及类型上保持一致。调用Function函数并将返回值赋给变量,只能采用以下形式:
变量=函数名参数1,参数2,
例如,FunctionEndfunction.asp(或FunctionEndfunction.html)的执行结果如图317所示,FunctionEndfunction.asp(或FunctionEndfunction.html)中的代码如下:
Script Language="VBScript"
temperature=inputbox"请输入华氏温度: "
MsgBox "温度为"&celsiustemperature&"摄氏度"
function Celsiusfdgrees
celsius=fdgrees-32*59
end function
Script
图317FunctionEndfunction.asp的执行结果
3.2.5VBScript函数现将VBScript提供的函数及其功能简要概括如下:
Abs: 绝对值;
Array: 数组;
Asc: 与字符串第一个字母相关的ANSI字符编码;
Atn: 反正切;
Cbool: 转换为布尔类型;
Cbyte: 转换为Byte子类型;
Ccur: 转换为Currency子类型;
Cdate: 转换为Date子类型;
Cdbl: 转换为Double子类型;
Chr: 返回ASCII对应的字符;
Cint: 转换为Integer子类型;
CLng: 转换为Long子类型;
Cos: 余弦;
CreateObject: 创建并返回对象实例;
Csng: 转换为Single子类型;
Cstr: 转换为String子类型;
Date: 当前系统日期;
DateAdd: 返回已添加指定时间间隔的日期;
DateDiff: 返回两个日期间的时间间隔;
DatePart: 返回给定日期的指定部分;
DateSerial: 使用指定的年、月、日返回Date子类型;
DateValue: Date子类型;
Day: 1~31之间的一个整数,表示某月中的一天;
Eval: 计算表达式的值并返回结果;
Exp: e的幂次方;
Filter: 返回下标从0开始的数组;
Int、Fix: 数字的整数部分;
FormatCurrency: 格式化为货币值;
FormatDateTime: 格式化日期或时间;
FormatNumber: 格式化一个数值;
FormatPercent: 格式化为以%结尾的百分比格式;
GetObject: 返回对文件中Automation对象的引用;
Hex: 返回表示十六进制值的字符串;
Hour: 返回0~23之间的一个整数,表示一天中的某一小时;
InputBox: 显示一个输入框,提示用户输入一个数据;
InStr: 某字符串在另一字符串中第一次出现的位置;
InStrRev: 返回某字符串在另一字符串中出现的从结尾计起的位置;
IsArray: 布尔值,是否数组;
IsDate: 布尔值,是否可转换为日期;
IsEmpty: 是否为空;
IsNull: 是否包含无效的数据;
IsNumeric: 是否为数字;
IsObject: 是否引用了有效的对象;
Join: 将数组中的多个子字符串合成一个字符串;
LBound: 返回数组某一维的下标;
LCase: 返回字符串的小写形式;
Left: 返回指定数目的从字符串的左边算起的字符;
Len: 返回字符串内字符的数目;
LoadPicture: 返回图片对象;
Log: 自然对数;
Ltrim、Rtrim、Trim: 分别截去字符串前导空格、尾部空格、前导与尾部空格;
Mid: 返回从字符串中某个位置开始的指定数目的字符;
Minute: 返回0~59之间的一个整数,分钟数;
Month: 1~12之间的一个整数,月数;
MonthName: 代表指定月份的字符串;
MsgBox: 返回一个信息对话框;
Now: 系统当前的日期和时间值;
Oct: 返回表示数字八进制值的字符串;
Replace: 将字符串内的子字符串替换为指定的串;
RGB: 代表RGB颜色值的整数;
Right: 从字符串右边返回指定数目的字符;
Rnd: 返回一个随机数;
Round: 返回按指定位数四舍五入后的数值;
ScriptEngine: 返回代表当前使用的脚本程序语言的字符串;
Second: 0~59之间的一个整数,秒数;
Sgn: 表示数字符号的整数;
Sin: 正弦;
Space: 由指定数目的空格组成的字符串;
Split: 返回下标从0开始的一维数组,其中包含指定数目的子字符串;
Sqr: 平方根;
StrComp: 比较两字符串,并返回比较结果;
String: 返回指定长度、重复字符组成的字符串;
StrReverse: 将字符串反序排列输出;
Tan: 正切;
Time: 当前的系统时间;
Timer: 午夜12时以后已经过去的秒数;
TimeSerial: 含指定时、分、秒的时间;
TimeValue: 包含时间的Date子类型;
TypeName: 返回一个变量的子类型信息;
UBound: 返回数组某一维的上标;
UCase: 返回字符串的大写形式;
VarType: 返回表示变量子类型的整数;
Weekday: 返回表示一星期中某天的整数;
WeekdayName: 字符串,表示一星期中指定的某一天;
Year: 返回一个代表某年份的整数。
3.3利用SQL和ODBC数据源操作数据库
SQL即结构化查询语言(Structured Query Language),是一种功能较齐全的数据库语言,目前的多数数据库管理系统都支持SQL或提供SQL接口。利用SQL可以在数据库中建立数据表,可以在数据表中添加、更新、查询、删除记录,可以进行统计与计算操作,还可以在事务处理中执行相关操作。为了在ASP中执行这些操作,可以为相关数据库建立ODBC系统数据源。3.3.1建立数据库和ODBC数据源1. 建立db1.accdb数据库
假定要为文件名为db1.accdb的学生数据库建立ODBC系统数据源。可以在E盘根目录下建立student文件夹,利用Access 2007在E:\student目录下建立数据库文件db1.accdb。2. 为db1.accdb建立名为xuesheng的ODBC系统数据源
图318ODBC数据源管理器和创建新数据源对话框
假定要为db1.accdb建立名为xuesheng的ODBC系统数据源。首先,对于64位操作系统,需要利用Internet信息服务IIS管理器启用32位应用程序,参见2.1节的IIS的设置见图28。其次,打开C:\Windows\SysWOW64目录,双击odbcad32应用程序,可打开ODBC数据源管理器窗口,选择系统DSN选项卡,然后单击添加按钮,在出现的创建新数据源对话框选择Microsoft Access Driver *.mdb,*.accdb,如图318所示; 再单击完成按钮,则出现ODBC Microsoft Access安装对话框,输入数据源名xuesheng,并单击数据库区域的选择按钮,在出现的选择数据库对话框中依次选择驱动器(如E盘)、目录(如e:\student)和数据库名(如db1.accdb),如图319所示; 单击确定按钮,返回ODBC Microsoft Access安装对话框,再单击确定按钮,返回ODBC数据源管理器对话框,如图320所示; 最后再单击确定按钮,完成ODBC数据源的设置。设置完成后,就可以在ASP文件中用xuesheng表示数据库文件E:\student\db1.accdb对应的数据源。
图319ODBC Microsoft Access安装和选择数据库对话框
图320已设置系统DSN后的ODBC数据源管理器窗口
3. 注意事项如果出现ASP无法访问Access数据库的情况,可将C盘Windows目录下temp文件夹的Users用户权限设置为允许完全控制。操作步骤是:右击temp文件夹,在出现的快捷菜单选择属性,再在弹出的temp属性对话框中选择安全选项卡选中Users,用户可查看Users的权限,单击编辑按钮,弹出temp的权限对话框,选择Users,并将Users的权限下的完全控制选中为允许;然后单击确定按钮按提示完成设置,如图321所示。也可为C:\Windows\temp目录添加Everyone用户,将Everyone的权限设置为允许完全控制。以同样的方法,将数据库文件所在文件夹如E:\student的Users用户权限设置为允许完全控制。
图321设置C:\windows\temp的Users权限
3.3.2建立数据表(1) 格式: Create table 表名(字段 数据类型(宽度),字段 数据类型,)。(2) 功能: 建立数据表的结构,在打开数据库的情况下建立的是数据库表。(3) 注意: 一方面,如果在某字段的数据类型(宽度)后面标明primary key,即可将该字段设置为主键,被设置为主键的字段在数据表中不允许出现重复的值; 另一方面,有些数据类型(如文本型或称字符型)应注明宽度,有些数据类型(如逻辑型和日期时间型)不用定义宽度。利用SQL建立数据表时,字段的数据类型在不同种类数据库中的表示方法有所不同。在ASP中利用SQL建立Access数据库表时,其常用的数据类型及表示方法如表31所示。
表31在ASP中利用SQL创建Access数据库表的常用字段类型
数 据 类 型类 型 标 识说明
文本Char、Text一般需定义字段大小,如char11表示字段大小为11。字段大小缺省时默认为255
日期时间Date、Time、Datetime
数字
Byte字节Short、Smallint整型Integer长整型Single、Real单精度型Numeric、Double、Float双精度型
货币Currency、Money是否Logical、Bit备注Memo自动编号CounterOLE对象Oleobject二进制Binary
(4) 例: 建立名为stu的数据表。
create table stuxh char11,xm char4,xb char1 ,csrq date,dhhm char8
(5) 在db1.accdb数据库中建立stu表,其ASP网页文件createDBtable.asp中的代码如下:
%
set conn=server.createobject"adodb.connection"
conn.open "xuesheng"
strSQL="create table stuxh char11 primary key,xm char4,xb char1"
strSQL=strSQL&",csrq date,dhhm char8"
conn.executestrSQL
%
说明: 是ASP特有的脚本标记,由于文件createDBtable.asp中没有声明所使用的脚本语言,所以被认为使用默认的脚本语言(本书使用的默认的脚本语言为VBScript)。set conn=server.createobject"adodb.connection"的作用是利用Server对象的CreateObject方法建立连接对象conn。conn.open "xuesheng"的作用是使用DSN建立conn与数据库的连接,使用这种方法连接数据库的前提是建立了ODBC数据源,而且所建立的系统数据源的名称是xuesheng。该语句也可以写成conn.open "dsn=xuesheng"。如果没有建立ODBC系统数据源,可用以下语句形式之一建立与数据库的连接: conn.open "dbq="&server.mappath"db1.accdb"&";driver={Microsoft Access Driver *.mdb,*.accdb}" conn.open "dbq=e:\student\db1.accdb"&";driver={Microsoft Access Driver *.mdb,*.accdb}"conn.executestrSQL的作用是利用连接对象的execute方法执行strSQL所对应的SQL命令,strSQL是一个命令字符串。这里,strSQL="create table stuxh char11 primary key,xm char4,xb char1,csrq date,dhhm char8",该命令串对应的SQL命令的作用是创建stu数据表,包含字段xh、xm、xb、csrq、dhhm,分别对应于学生的学号、姓名、性别、出生日期、电话号码,其中xh(学号)被设置为主键,除出生日期为日期型数据外,其余均为文本(或字符)型。对于文本型字段,一般需要定义字段大小,Access数据库中每个汉字、字符、数字等的字段大小均按1计算,ASP文件中文本型字段大小默认为255。3.3.3添加记录(1) 格式: insert into 表名(字段1,字段2,) Values(值1,值2,)。(2) 功能: 向表名对应的数据表中添加一条新记录。(3) 注意: 值的数据类型与相应字段的数据类型一致,主键对应的数据值不能重复。(4) 例: 向stu表中添加一条新记录
insert into stuxh,xm,xb,csrq,dhhm
values"20150301003","李鹏", "男",#199788#,"01010101"
(5) 向stu表中添加记录的ASP网页文件stuAdd.asp中的代码如下:
%
set conn=server.createobject"adodb.connection"
conn.open "xuesheng"
strSQL="insert into stuxh,xm,xb,csrq,dhhm"
strSQL=strSQL "values''20150301003'',''李鹏'', ''男'',#199788#,''01010101''"
conn.executestrSQL
%
说明: 在语句conn.executestrSQL中,strSQL="insert into stuxh,xm,xb,csrq,dhhm values''20150301003'',''李鹏'',''男'',#199788#,''01010101''",其中,命令字符串可以拆分成两个或多个较短的字符串,然后用连接运算符&或 (不包括引号)连接起来。日期数据两边应使用#号括住,字符型数据两边用引号括住(注意,嵌套在双引号中的引号要写成单引号的形式),但如果是数值型数据包括整型、单精度型、双精度型等,则两端不加引号和#号。
运行stuAdd.asp时,要确保stu表中没有学号为20150301003的记录。3.3.4更新记录(1) 格式: update 表名 set 字段1=值1,字段2=值2, where 条件。(2) 功能: 按某个条件更新特定表中的字段值,如不含where子句,则更新表中全部记录相关字段的值。(3) 注意: 一定要记住使用where指定更新条件,否则更新全部记录。另外,值与相应字段的数据类型要保持一致,更新主键的值时不能与表中重复。(4) 例: 将stu表中学号为20150301003的记录的出生日期和电话号码进行修改。
update stu set csrq=#199612#,dhhm="67781212" where xh="20150301003"
(5) 修改stu表中学号为20150301003的记录的出生日期和电话号码,其ASP文件stuUpdate.asp中的代码如下:
%
set conn=server.createobject"adodb.connection"
conn.open "xuesheng"
strSQL="update stu set csrq=#199612#,dhhm=''67781212''"
strSQL=strSQL "where xh=''20150301003''"
conn.executestrSQL
%
3.3.5查询记录1. 常用格式一
(1) 格式: select * from 表名 where 条件。(2) 功能: 查找表中满足条件的记录。缺省where子句时,表示列出表中全部记录。(3) 例: 查找stu表中男性学生的记录。
select * from stu where xb="男"
2. 常用格式二(1) 格式: select 字段1,字段2, from 表名 where 条件。(2) 功能: 查找表中满足条件的记录,并挑选出相关的列。(3) 例: 查找stu表中男性学生对应的学号、姓名和电话号码。
select xh,xm,dhhm from stu where xb="男"
3. 常用格式三(1) 格式: select * from 表名 where 条件 order by 字段1,字段2 desc,(2) 功能: 查找表中满足条件的记录,并按字段1排序,字段1的值相同的记录再按字段2排序,desc表示降序,asc表示升序,默认为升序,其余类推。(3) 例: 查找stu表中男性学生的记录,并按姓名降序排序,姓名相同按学号升序排序。
select * from stu where xb="男" order by xm desc,xh asc
(4) 查找并输出stu表中男性学生的记录,并按姓名降序排序,姓名相同按学号升序排序,其ASP文件stuSelect.asp中的代码如下:
%
set conn=server.createobject"adodb.connection"
conn.open "xuesheng"
strSQL="Select * from stu where xb=''男'' order by xm desc,xh asc"
Set rs=conn.executestrSQL
Do While Not rs.eof
response.write rs"xh"&","&rs"xm"&","&rs"xb"
response.write ","&rs"csrq"&","&rs"dhhm"
response.write "BR"
rs.movenext
Loop
%
说明:1 Set rs=conn.executestrSQL的作用是执行strSQL对应的查询命令,并返回一个记录集对象,该对象中包含查询到的全部记录。查询到的所有记录位于文件首标记和文件尾标记之间,若记录集无数据,则记录指针同时指向文件首标记和文件尾标记;若记录集有数据,则记录指针最开始指向第一条记录,可通过移动记录指针指向不同的记录,记录指针所在的记录称为当前记录。2 Do While Not rs.eof Loop是循环语句结构,当记录指针没有指向记录集文件尾时执行循环体,其中Not rs.eof表示记录指针没有遇到记录集的文件尾,response.write的作用是向浏览器端输出其后表达式的值,rs"xh"表示记录集对象中当前记录的xh学号字段的值,其余字段依此类推,&是连接运算符,
表示换行,rs.movenext的作用是将指针移向下一条记录。
3.3.6删除记录(1) 格式: delete from 表名 where 条件。(2) 功能: 删除特定表中满足条件的记录。缺省where子句时,表示删除表中所有记录。(3) 例: 删除stu表中学号为20150301003的记录。
delete from stu where xh="20150301003"
(4) 删除stu表中学号为20150301003的记录,其ASP文件stuDelete.asp中的代码如下:
%
set conn=server.createobject"adodb.connection"
conn.open "xuesheng"
strSQL="delete from stu where xh=''20150301003''"
conn.executestrSQL
%
3.3.7统计与计算1. 不分组统计与计算
(1) 格式: select表达式1 as 列1, 表达式2 as 列2, from 表名where 条件。
2 功能: 对数据表内满足where子句限定的条件的记录进行统计、汇总或相关计算。as列1表示将列1作为统计结果中相应列的别名,缺省时列名为字段名当表达式1是字段名或类似Expr1000的名称当表达式1不是字段名; 格式中也可不含where条件子句,这时就会在数据表的全部记录范围内分别进行统计、汇总或计算。格式中的表达式可以包含以下函数:
count*或count字段: 统计满足条件的记录数;
sum数值型字段: 计算满足条件的记录在指定的数值型字段上的和;
avg数值型字段: 计算满足条件的记录在指定的数值型字段上的平均值;
max字段: 求满足条件的记录在指定的字段上的最大值;
min字段: 求满足条件的记录在指定的字段上的最小值。
3 例: 统计stu表中男生的人数: select count* as男生人数from stu where xb="男"。列出stu表中年龄最大和最小的学生的信息: select * from stu where csrq=select mincsrq from stu or csrq=select maxcsrq from stu。
2. 分组统计与计算(1) 格式: select 字段, 表达式1 as 列1, from 表名 group by 字段 having 条件。
(2) 功能: 对数据表按指定字段进行分组,再对各组内符合having子句限定的条件的记录进行统计、汇总或相关计算。格式中也可不含having 条件子句,这时就会在各组的全部记录范围内分别进行统计、汇总或计算。格式中的表达式可以包含以下函数:
count*或count字段: 统计各组内符合条件的记录数;
sum数值型字段: 计算各组内符合条件的记录在指定的数值型字段上的值的和;
avg数值型字段: 计算各组内符合条件的记录在指定的数值型字段上的值的平均值;
max字段: 求各组内符合条件的记录在指定的字段上的最大值;
min字段: 求各组内符合条件的记录在指定的字段上的最小值。3 例: 统计stu表中男生和女生的人数、出生日期最大值、出生日期最小值: select xb as性别, count* as人数, maxcsrq as出生日期最大值, mincsrq as出生日期最小值from stu group by xb。4 参见6.3.6节图书信息的分类汇总、统计与计算。
3.3.8事务处理事务是服务器的一种整体成功或整体失败的操作,事务处理用于对数据库进行可靠的更新。在对数据库进行多个更改操作或同时更改多个数据表时,需要保证这些更改都能被正确执行,若任何一个更改失败,都需要恢复到数据表的原始状态。例如,一个事务包括删除记录和添加记录两个操作,这两个操作作为一个整体需要都被正确执行,或者都不被执行。事务处理文件shiwuchuli.asp中的代码如下:
% dim conn,strconn
strconn="DBQ="&server.mappath"db1.accdb"
strconn=strconn&";Driver={Microsoft Access Driver *.mdb,*.accdb}"
set conn=server.createobject"adodb.connection"
conn.open strconn
on error resume next
conn.BeginTrans
strSQL="delete from stu where xh=''20150102010''"
conn.executestrSQL
strSQL="insert into stuxh,xm,xb,csrq,dhhm values ''20150102010'',"
strSQL=strSQL&"''赵灵儿'',''女'',''19971010'',''67783333''"
conn.executestrSQL
If conn.Errors.count=0 Then
conn.commitTrans
response.write "commitTrans:更新,Error:"&conn.errors.count
Else
conn.RollBackTrans
response.write "RollBackTrans:没更新,Error:"&conn.errors.count
End If
%
说明:(1) dim conn,strconn 的作用是显式声明两个变量,conn 是连接对象,strconn是连接字符串。conn.open strconn用于建立与数据库的连接。(2) on error resume next是错误跳转语句,其作用是忽略程序中的错误,自动执行下一条语句。这样,程序即使出现错误,也不会终止ASP的运行,用户也不会看到出错信息。(3) conn.BeginTrans方法用于开始一个新的事务。(4) strSQL="delete from stu where xh=''20150102010''"是删除学号为20150102010的记录的命令串,其后的conn.executestrSQL执行删除操作。(5) strSQL="insert into stuxh,xm,xb,csrq,dhhm values ''20150102010'', ''赵灵儿'',''女'', ''19971010'',''67783333''"是向stu表中添加新记录的命令串,其后的conn.executestrSQL执行添加数据的操作。本例中的删除数据和添加数据操作作为一个整体被认为是一个事务。(6) conn.Errors.count属性用来指出连接对象的Errors集合目前所包含的Error对象的个数。每当错误发生时,都会有一个或多个Error对象被放置到连接对象的Errors集合中。conn.Errors.count=0表示没有发生ADO操作错误。(7) 当ADO操作没有产生错误时,保存更改,并向浏览器端输出commitTrans: 更新,Error:0,否则,执行取消更改操作(即放弃事务),并向浏览器端输出RollBackTrans:没更新,Error:1之类的提示。conn.commitTrans方法的作用是保存任何更改并结束当前事务,conn.RollBackTrans方法的作用是取消当前事务中所作的任何更改并结束事务。
思考题
1. 什么是动态网页?主流的动态网页开发技术有哪几种?2. 什么是ASP?其执行过程或大致工作流程是什么?3. 如何创建和运行ASP程序?编写ASP程序时需注意什么?4. 什么是脚本和脚本语言?ASP中可以使用的脚本语言有哪几种?系统默认的脚本语言是什么?如何声明所使用的脚本语言?5. VBScript中包含哪些数据类型和子类型?有哪些运算符?如何声明常量、变量和数组?6. VBScript中表示选择结构、循环结构的各种基本语法格式是什么?各有什么功能?7. 过程和函数有何不同?如何在VBScript中定义、使用过程和函数?函数Date、Time、Day、Now、Cdate、Cint、Csng、Cstr、IsDate、IsEmpty、IsNull、IsNumeric、Int、Trim、Len、Space、Rnd、UCase、InputBox、MsgBox、CreateObject分别有什么作用?8. 什么是SQL?具有哪些主要功能?9. 如何理解事务和事务处理?10. 已知学生选课数据库xsxk.accdb中包含课程表kecheng,表的结构如表124所示(见第1章思考题第10题)。首先,建立ODBC系统数据源,数据源名为course,对应于数据库xsxk.accdb。然后,设计ASP程序代码,实现以下功能:(1) 向kecheng表中添加一条新记录,课程号、课程名、任课教师、学分、学期的值分别为K1001、大学英语、张三、2、1;(2) 将kecheng表中课程号为K1001的记录的学分修改为2.5;(3) 查询kecheng表中任课教师为张三的记录;(4) 删除kecheng表中课程号为K1001的记录;(5) 作为一个事务,先删除课程号为K1002的记录,再增加课程号为K1002、课程名为经济法、任课教师为王五、学分为2、学期为4的记录,若其中一个操作未能成功执行,则将数据恢复到事务执行前的状态。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.