您当时的方位:主页 > 言语编程 > ASP

ASP教程5:ASP脚本变量、函数、进程和条件句子

2014-08-18  www.codeforacause.net
在上一期中作者向诸位扼要介绍了 ASP 脚本言语之一 VBScript 的一些根本常识,本期将持续给咱们解说 VBScript 的脚本编写办法,并经过展现 VBScript 在 ASP 程序编写进程中的一系列实例使咱们对 VBScript 有更进一层的了解。
   咱们在学习了脚本言语 VBScript 的变量、常量和进程的根本概念后,本期将持续向各位介绍 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( 留意:请将程序中“<”后的空格去掉 )   < html>
  < head>
  < TITLE>if1.asp< /TITLE>
  < /head>< body bgcolor="#FFFFFF">
  < form action="if2.asp" method=get>
  Your First Name< INPUT NAME="FirstName" MaxLength=20>< p>
  Your Last Name< INPUT NAME="LastName" MaxLength=20>< p>
  < INPUT TYPE=submit>< INPUT TYPE=reset>
  < /form>
  < /body>
  < /html>
  将以下句子剪贴到记事簿中,并保存为 if2.asp   < html>
  < head>
  < TITLE>ifrespond.asp< /TITLE>
  < /head>
  < % fname=request.querystring("Firstname")


  lname=request.querystring("Lastname")


  If fname="George" and lname="Washington" then
  Hi.You must be the first president!


  < % else
  Hi!Nice to Meet You


  < %end if
  < /body>
  < /html>

   asp1.asp 发生一个文本输入框,要求用户输入姓、名,如下图:


 请增加描绘

   asp2.asp 则是用 IF 句子判别用户输入的名字是否为“George Washington”, 并做出相应的反应。在此咱们遇到了一个 ASP 的内建目标 request,经过运用 request 目标可以拜访任何用 HTTP 恳求传递的信息,包含从 HTML 表格顶用 POST 办法或 GET 办法传递的参数、cookie 和用户认证。而 QueryString 调集检索 HTTP 查询字符串中变量的值,HTTP 查询字符串由问号 (?) 后的值指定。如:
   http://localhost/if2.asp?Firstname=George&Lastname=Washington

   生成值为 "Firstname=George&Lastname=Washington" 的变量名字符串。关于 ASP 目标作者将在往后的几篇里要点叙述。

   If...Then...Else 句子的一种变形答应您从多个条件中挑选,即增加 ElseIf 子句以扩大 If...Then...Else 句子的功用,使您可以操控依据多种或许的程序流程。

   咱们将 asp2.asp 的程序部分扩大如下:  < %


  fname=lcase(request.querystring("Firstname"))


  lname=lcase(request.querystring("Lastname"))


  If fname="george" and lname="washington" then
  Hi.You must be the first president!< p>
  < % elseIf fname="ronald" and lname="reagan" then
  Hi.You must be the actor president!< p>
  < % elseIf fname="jimmy" and lname="carter" then
  Hi.You must be the peanut farmer president!< p>
  < % elseIf fname="naoko" or fname="charles" then
  Hi.Your name reminds me of someone,but I am not sure who!< p>
  < % else
  Hi!Nice to Meet You


  < % end if

   可以增加恣意多个 ElseIf 子句以供给多种挑选。但运用多个 ElseIf 子句常常会使程序变得很负担。在多个条件中进行挑选的更好办法是运用 Select Case 句子。

   Select Case 结构供给了 If...Then...ElseIf 结构的一个变通方式,可以从多个句子块中挑选履行其间的一个。Select Case 句子供给的功用与 If...Then...Else 句子相似,可是可以使代码愈加简练易读。Select Case 结构在其开端处运用一个只核算一次的简略测验表达式。表达式的成果将与结构中每个 Case 的值比较。假如匹配,则履行与该 Case 相关的句子块,咱们相同可以用 Select Case 句子来写 asp2.asp 文件:


  < %


  fname=lcase(request.querystring("Firstname"))


  lname=lcase(request.querystring("Lastname"))


  name=fname+lname


  Select case name


  case "georgewashington"


  response.write "Hi.You must be the first president!< p>"


  case "ronaldreagan"


  response.write "Hi.You must be the actor president!< p>"


  case "jimmycarter"


  response.write "Hi.You must be the peanut farmer president!< p>"


  case "naokocharles"


  response.write "Hi.Your name reminds me of someone,but I am not sure who!< p>"


  case else


  response.write "Hi!Nice to Meet You"


  End Select

   请留意 Select Case 结构只核算开端处的一个表达式,并且只核算一次,而 If...Then...ElseIf 结构核算每个 ElseIf 句子的表达式,这些表达式可以各不相同。因而仅当每个 ElseIf 句子核算的表达式都相一起,才可以运用 Select Case 结构替代 If...Then...ElseIf 结构。Select Case 句子也是可以是嵌套的,每一层嵌套的 Select Case 句子必须有与之匹配的 End Select 句子。



   以上给咱们介绍的脚本言语 VBScript 的函数和条件句子的运用办法,因为篇幅的原因不能具体打开,期望各位有志学习 ASP 的朋友,能在课后进行必定程度的自学和操练。在日常开发 ASP 应用程序的进程中作者自己日渐领会到了脚本言语的重要性,灵活运用脚本言语将非但可以大大提高 ASP 应用程序的开发进程,给广阔网站制造人员节约很多的时刻,并且还可以增强 ASP 应用程序的履行功率和功用。欲善其事必先利其器,因而作者在此强烈主张诸君,娴熟把握脚本言语,这将对你的 ASP 程序开发大有协助。因为本文不是 VBScript 教程,因而只能用较小的篇幅给咱们扼要介绍一些 VBScript 根本常识,鄙人一期介绍完 VBScript 的循环句子后,咱们将正式开端学习 ASP 的内建目标,要深化 VBScript,主张咱们找些教材进行自学。假如你在看完本文后有任何问题请及时 Mail 我,假如你有什么好的主张也请来信奉告,谢谢。