ASP 3.0高级编程(七)
ASP 3.0高级编程(七),ASP 3.0高级编程(七)
单击“Remove”按钮不会真正地删除Internet Services Manager中的该条目。而是把现有的虚拟应用程序转换为一个虚拟目录。这个目录有一个带有蓝色球的“文件夹”图标,该图标表示这并不是Web网站中一个真正的目录,而是对磁盘上另一个文件夹的一个重定向。对它进行的访问方式与创建它的虚拟应用程序相同(即使用相同的URL),但是不作为一个应用程序。换句话说,它不支持自己的Application对象,而是继承缺省Web网站的Application对象,或者是在该目录的父目录中的另一个应用程序的Application对象。
为了删除一个虚拟应用程序,可简单地在Internet Services Manager中的对象上单击右键,在弹出的菜单中选择Delete。
(5) 应用程序存储的内容
ASP Application对象提供的全局存储空间可以用来存储下列内容:
· 简单变量,例如字符串和数字(存储为Variant,类似于ASP脚本变量)。
· Variant类型数组,一维或多维。
· 对一个COM对象实例的变量引用(类型于Variant)。
(6) Variant的定义
Variant是在VBScript脚本引擎中为ASP(和Internet Explorer)提供的唯一变量类型,与在VB和VBA中定义的数据类型 Variant相类似。与大多数常用的基本数据类型(例如字符串或整数)相比,尽管它不能使存储单元最高效地存储变量,需要进行额外的处理,但Variant提供许多用处。
从内部来Variant数据类型存储数值作为独立的子类型。它能自动地处理隐含的类型转换,允许使用如下的代码:
strString = ”30”
intInteger = 12
Response.Write strString & intInteger ‘Writes 3012 in the resulting page
Response.Write strString + intInteger ‘Writes 42 in the resulting page
隐含的数据类型转换允许忽略HTML广西的值和列表控件是字符串的情况,并且如果需要的话可以把它们当成数字(假设字符串确实包含一个有效的数字)。也可以随意地做一些其他的事情,诸如使用VBScript的Len方法检查Request.Form集合中并不存在的一个值的长度。Len函数试图把从Request.Form的调用的值转换成一个字符串。如果该值丢失,返回空(Empty),转换为带有””的一个字符串,因此长度是零。
(7) VBScript数据类型及转换
也可以进行显式的数据类型转换。在VBScript中,VarType方法返回一个整数,表明Variant当前保存的子类型:
Select Case VarType(varMyValue)
Case 0: Response.Write “Empty (uninitialized)”
Case 1: Response.Write “Null (no valid data)”
Case 2: Response.Write “Integer”
Case 3: Response.Write “Long integer”
Case 4: Response.Write “Single-precision floating-point number”
Case 5: Response.Write “Double-precision floating-point number”
Case 6: Response.Write “Currency”
Case 7: Response.Write “Date”
Case 8: Response.Write “String”
Case 9: Response.Write “Automation Object reference”
Case 10: Response.Write “Error”
Case 11: Response.Write “Boolean”
Case 12: Response.Write “Variant (used only with items in arrays of Variants)”
Case 13: Response.Write “Data-access Object”
Case 17: Response.Write “Bytes”
Case 8192: Response.Write “Variant Array”
End Select
还有一些函数,如IsArray、IsDate、IsEmpty、IsNull、IsNumeric和IsObject,对于特定的子类型返回一个Boolean结果。一旦知道了数据的子类型,如果包含的数据合适的话,就可以将之转换成不同的Variant子类型。这对代码的透明性和检查变量是否包含合法值都是有用的,非法的转换将导致运行期错误,转换如下所示:
blnBoolean = Cbool(varVariant) ‘Converts to a