平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“ASP基础入门第四篇(脚本变量、函数、过程和条件语句)”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
从实现思路看,在上一篇向大家简要介绍了 ASP 脚本语言之一 VBScript 的一些基本常识,本期将继续给大家讲解 VBScript 的脚本编写方法,同时借助展示 VBScript 在 ASP 程序编写过程中的一系列实例使大家对 VBScript 有更进一层的理解。
落到代码里,函数和过程一样都是命名了的代码块,但它们却有很大的区别,过程完成程序任务,函数则得到值。我们能够这样理解,过程象一个完整的句子,而函数则象一个单词。举个例子,当你想拿到某个数的平方根,你只要将该数传给 VBScript 的 Sqr() 函数,此函数会立即得到该数的平方根。如:
A=sqr(9)
从实现思路看,则 A=3。熟练掌握脚本语言的函数将给你编写 ASP 程序带来极大的便于,就以上一期结尾处作者布置给大家的课后练习来说,如果你对脚本语言的函数掌握不够全面,那么解决如此之小的一个问题将很有可能花费你相当大的精力。现在让我们来回顾一下这道课后练习。
从实现思路看,“作者正在用 ASP 制作一套基于 WEB 的 BBS 系统,希望能在其中添加一项特殊功能,即当任何用户登陆该 BBS 后都能够查阅近七天来所有新发布的信息。”
落到代码里,若你不熟悉 VBScrip,就不会知道 VBScrip 本身提供了一个用来取得日期之间的差或和的函数 DateSerial,它的语法如下所示:
DateSerial(year, month, day)
理解这一步时,若你要指定一个日期,比如:1998 年 11 月 10 日,那么 DateSerial 函数中每个参数的取值范围都应该是可接受的,即日的取值应在 1 和 31 之间,月的取值应在 1 和 12 之间。但是,也能够采用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。以下样例中采用了数值表达式代替绝对日期。在这里,DateSerial 函数得到 1998 年 11 月 10 日之前二十年 (1990-20) 零两个月 (11-2) 又一天 (10-1) 的日期:即 1978 年 9 月 9 日。程序如下所示:
Datep=DateSerial(1998-20, 11-2,10-1)
实际处理时,对于 year 参数,若取值范围是从 0 到 99,则被解释为 1900 到 1999 年。对于此范围之外的 year 参数,则采用四位数字表示年份(比如 1800 年)。当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。比如,如果指定了 35 天,则这个天数将被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767 的范围,或者由三个参数指定(无论是直接还是借助表达式指定)的日期超出了能够接受的日期范围,就会发生错误。 当我们了解同时掌握了函数 DateSerial 的采用方法后,再来看看作者布置的这道题目,一切就迎刃而解了。下面我将程序中的此部分代码公布如下所示:
itemp=DateSerial(Year(date), month(date), day(date)-7)
itemp=DateValue(itemp)
sql="Select * from message Where message.creatime Between #"&date&"# And #"&itemp&"# "
在这个场景下,在这里我们又接触到了一组函数 Year,month,day,它们是用来得到一个日期的年、月、日。date 是常数,表示今天日期,而函数 DateValue 则是将字符串变量转化为日期格式的变量。在本段程序的第三行,我们第一次接触到了标准的 SQL 查询语句,这句语句是什么意思呢?
从实现思路看,“Select”是标准的 SQL 数据库查询命令,借助 SELECT 语句我们能够在数据库中检索数据,同时将查询结果提供给用户,此处的“*”表示查询该名为“message”的数据库中的所有记录,而“where”的作用是设定一个查询条件,是为了将数据库中符合条件的记录取出来,“message.creatime”是一个储存了数据库中记录新建日期的变量。将整句语句连起来理解就是:查询名为 message 的数据库中的所有记录,并将其中新建日期在今天和今天以前七日以内的所有记录存储在变量 sql 中。可能由于大家第一次接触 SQL 语句,一时间无法完全理解它的作用,不过不用担心在今后的章节中作者将专门用一期给大家介绍 SQL 的采用方法。
在这个场景下,借助上面的学习,大家应该已经能够理解函数在程序中的作用,当然我们不必去死背函数,但要做到熟练运用只有一条捷径 -- 多实践。下面让我们来看看 VBScript 的基本语法。
实际处理时,了解编程语言的朋友一定知道在程序中控制程序流程的语句主要能够分为条件语句和循环语句,在 VBScript 中可采用以下条件语句:
If...Then...Else 语句
Select Case 语句
实际处理时,If...Then...Else 语句用来计算条件是否为 True 或 False,同时且根据计算结果指定要运行的语句。通常,条件是采用比较运算符对值或变量进行比较的表达式,If...Then...Else 语句能够按照需进行嵌套。
让我们来新建两个范例文件:if1.asp 和 if2.asp
理解这一步时,将以下语句剪贴到记事簿中,同时保存为 if1.asp( 注意:请将程序中“<”后的空格去掉 )
〈head>
< TITLE>if1.asp< /TITLE>
< /head>< body bgcolor="#FFFFFF">
< form action="if2.asp" method=get>
Your First Name< INPUT NAME="FirstName" MaxLength=20>
Your Last Name< INPUT NAME="LastName" MaxLength=20>
< INPUT TYPE=submit>< INPUT TYPE=reset>
< /form>


