asp自学笔记--从入门到精通(全系自创)

ASP精通

一、asp用法
1、VBScript不区分大小写,JScript区分大小写。
一般客户端用JScript(支持浏览器多),服务器端用VBScript(微软IIS缺省脚本语言)。
注意:empty类型变量只要被字符串函数处理过就会失效,被赋予"",如:trim\lcase\cstr。
null类型变量被字符串函数trim\lcase处理后不会失效,但使用cstr会出现错误。
2、特殊语句
1、关闭缺省的错误处理语句
示例:
on error resume next
err.raise 444,"source","description"
if err.number<>0 then
response.write "" & err & ":[" & err.number & "]-<<" & err.sources & ">>-""" & err.description & """
"
err.clear
end if
on error goto 0
注意:err有三个属性number、source和desription,一个方法err.clear。
on error resume next只在块中起作用,一旦出块例如函数、子程序等,它不再对块外执行错误缺省处理。
示例:
function aa(a)
on error resume next
a = a/0
aa = 1
end function
b=aa(1)
a=1/0
2、单个输出表达式
<%=变量名称%>
3、include命令
#include命令用于在多重页面上创建需重复使用的函数、页眉、页脚或其他元素等。关键词virtual指示路径从虚拟目录开始,而file指示一个相对路径,即其起始于含有引用文件的目录,可使用“..\”来引用上级目录。

函数
exit sub '退出一个子过程
11、function语句
[public|private] function name(参数列)
end function
12、sub语句
[public|private] sub name(参数列)
end function
13、set语句
set objname = {objexpression|nothing} ‘赋予一个变量或对象,当赋予nothing则解除以前关系。
14、Randomize语句
Randomize [number] '给Rnd函数的随机数发生器一个新种子值。
15、with语句
set fs = server.createobject("adodb.stream")
with fs
.type = 1 '1为二进制数据,2为文本数据
.open
.loadfromfile "d:\web\3\reset.mdb"
response.contenttype = "application/x-mdb"
response.addheader "Content-Disposition","attachment;filename=要下载的文件名.mdb"
response.binarywrite .read
.close
end with
16、EVAL语句
执行字符串或单语句,但语句中不得有空格,":"并列语句方式也不得执行。另外,该语句执行变量赋值不影响其外部同名变量。
示例:
str = "response.write(""a"")"
eval(str)
示例:
a="aaa"
response.write a & "
" '显示"aaa"
eval(a=a & "bbb")
response.write a & "
" '显示"aaa"
a=a & "bbb"
eval(response.write(a & "
")) '显示"aaabbb"
17、EXECUTE语句
执行字符串式表达式,注意必须是字符串形式,表达式可为多语句。另外,若从数据库表内提取的信息,可不用对其"进行再处理就可应用执行。
示例:
a="dim b:b = 12:response.write(b)"
execute a
3、特殊符号
1、VBScript中字符串连接符号用&。若两方都是字符串则可用+连接,否则返回错误“类型不匹配: '[string: "s"]'”。JScript中用+连接字符。
&_ 可表示断句,下句继续的用处。如:
示例:
str = "this is" &_
" a test."
2、当“%>”出现在字符串符号内时,服务器返回“未结束的字符串常量”的错误。此时,应将“%”和“>”分开连接。
示例:
a = "%%%" & ">%$#@!" '不分开就显示错误,当他通过ASP分析后再传递给其他命令时就不返错了。
response.write a
3、chr(13) & chr(10),vbcrlf均表示换行回车,但只能体现在文本文件中,HTML显示出来仍未换行,但其HTML源文件却换行了。
chr(9)表示TAB制表符。
4、'表示注释,另外Rem后也可跟注释,但如果跟其他语句在同一行,需用冒号隔开。
5、:表示语句串列执行
6、数学操作符
a = 1+2
a = 1-2
a = -a '数的相反数
a = 1*2
a = 1/2 '两数相除并返回一个浮点数
a = 1/2 '两数相除并返回一个整数
a = 1 mod 2 '两数相除并返回余数
a = 1^2 '数1的2次方
7、比较符
varbool = 表达式1 and 表达式2 '逻辑与,也可用于字节位的比较,当两者在相应的位上的值都为1时,返回值为1。
varbool = 表达式1 or 表达式2 '逻辑或,也可用于字节位的比较。当两者的相应位的值

都为0时,返回值为0。
varbool = 表达式1 eqv 表达式2 '逻辑相等,也可用于字节位的比较,当两者在相应的位上的值相等时,返回值为1。
varbool = 表达式1 imp 表达式2 '逻辑隐含,也可用于字节位的比较。
varbool = Not 表达式1 '逻辑求反,同样也可用于位的求反运算。
varbool = object1 is object2 '检查两个变量是否指向同一个对象,如果是,返回值为TRUE。
4、声明常量
用户可在一行里声明多个常量,用逗号将常数赋值语句隔开。
const constantname=expression
[public|private] const constantname=expression '可能适用于类,其他形式不允许在const前加说明项
5、声明变量
可以先声明变量再用,也可以不声明就使用变量。
dim 变量名称
6、声明数组变量
数组在使用前必须被声明。
示例1:
dim myray1(2) '声明一个一维含3个元素的数组
dim myray2(2,2) '声明一个二维数组
dim myray3():redim myray3(2):redim preserve myray3(1) 'redim只能用于先前定义的动态数组,preserve保留先前元素的数据
erase myray1 '清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
示例2:
dim ary
ary = array(1,23,4) '将变量更改为数组变量,类型为动态数组
response.write ary(1) '数组的索引从0开始
erase ary '更新数组
redim ary(12) '可以重新更新数组
response.write ubound(ary,1) '显示数组下标12,注意若用erase更新数组后,则显示“下标越界”
response.write isarray(ary) '判断是否为数组类型,TRUE
response.write isempty(ary) '判断是否未初始化,FLASE
response.write isnull(ary) '判断是否错误量,FALSE
特殊情况
dim a
a = split("a=1|b=2|c=3","|")
response.write ubound(a) & "
"
for i = 0 to ubound(a)
a(i) = split(a(i),"=")
next
response.write ubound(a(1)) & "
" & a(0)(0)
此例中使用split是将数组其中的一个数组元素再此声明为内置数组。
7、声明对象变量
set con = server.createobject("adodb.connection")
set fso = server.createobject("scripting.filesystemobject")
8、控制语句
条件语句
当条件为数字时,仅且仅当数值为0时条件判断为负。
if 1=1 then response.write "good"
if 1=1 then
response.write "good"
elseif 1=2 then
response.write "bads"
else
response.write "bad"
end if
多条件控制语句
select case myvar
case 1
response.write "条件1"
case else
response.write "不符条件"
end select
注意:if中else、select中case else语句均可省,但必须有完结标记END。
9、循环语句
FOR循环
for myvar=4 to 20 step 4
response.write myvar & "
"
if myvar=16 then exit for
next
DO循环
形式一:
do
myvar = myvar + 1
loop until myvar=10
形式二:
do until myvar=10
myvar = my

var + 1
if myvar=8 then exit do
loop
形式三:
do while myvar<10
myvar = myvar+1
loop
形式四:
do
myvar = myvar+1
loop while myvar<10
WHILE循环
while myvar<10
myvar = myvar+1
wend
注意:FOR和DO循环有跳出语句EXIT,但WHILE未发现跳出语句。
10、子过程
sub mysub
response.write "子过程"
end sub
mysub '因无参数,故单写子过程名,也可用call调用

sub mysub(byval a)
a=2
exit sub
a=3
end sub
a = 1
call mysub(a)
response.write a
注意:1、子过程名不能与现有变量名冲突,否则将使现有变量返错为“非法赋值”,因不论先后先执行子过程。
2、byref指示改变参数中引入的变量本身(默认),byval指示参数仅为引入不更改变量。
11、子程序
function myfun(a)
a=2
myfun = a
exit function
a=3
end function
a = 1
b=myfun(a)
response.write a
12、类
class myclass
public my_c1,my_c2 '声明公有变量
private my_p1,my_p2 '声明私有变量
private sub class_Initialize() '类的初始化事件
my_c1 = "good"
my_p1 = 100
end sub
private sub class_Terminate() '类的结束事件
response.write "
CLASS结束了
"
end sub
public sub info() '自定义方法
response.write "
版本号:1000
"
end sub
public property let setvar(strs)'定义类的属性,输入
my_p2 = strs
end property
public property get infos '定义类的属性,输出
infos = my_p2
end property
end class

set cls = new myclass
cls.my_c2 = "版本号:1001"
https://www.360docs.net/doc/3211116376.html,
cls.setvar="版本号:1003"
response.write "
" & https://www.360docs.net/doc/3211116376.html,s & "
"
set cls = nothing
'显示
'版本号:1000
'版本号:1003
'CLASS结束了

二、asp的六大对象
1、Request对象
集合QueryString\Form\Cookies\ServerVariables\ClientCertificate
属性TotalBytes
方法BinaryRead
集合:
QueryString:HTTP中查询字符串中变量的值
Form:HTTP请求正文中表格元素的值
Cookies:HTTP请求中被发送的Cookie的值
HasKeys——只读,指定COOKIE是否包含KEY,值为TRUE/FALSE
Expires——仅可写入,指定COOKIES到期时间
Domain——仅可写入,指定COOKIE只传送至该网络区域
Path——仅可写入,指定COOKIES只送到该路径
Secure——仅可写入,设置COOKIES的安全性
ServerVariables:预定环境变量的值
ClientCertificate:存储在发送到HTTP请求中客户端证书中的字段值
属性
TotalBytes(只读),返回客户端响应数据的字节大小。
方法
BinaryRead,以二进制码方式读取客户端POST数据。
示例1:
a=Request.Form("user")
a=Request("user")
注意:若没有指定集合而直接引用参数,则按QueryString\Form\Cookies\ServerVariables\ClientCertificate顺序获取信息。
示例2:
a=request.querystring("b").coun

t
a=request.querystring("b")(1)
注意:若字符串中不存在B变量则返回0,存在单独B变量返回1,存在若干相同的B变量则返回数量[http:*.asp?b=1&b=2&c=3]。
示例3:
for i = 1 to request.querystring.count
a = a & "[" & i & "]" & request.querystring(i)
next
注意:返回“[1]1, 2[2]3”。
示例4:
for each item in request.querystring
a = a & "[" & item & "]=" & request.querystring(item)
next
注意:返回“[b]=1, 2[c]=3”。
示例5:
for each item in request.querystring
if request.querystring(item).count>1 then
a = a & "[" & item & "]="
for i = 1 to request.querystring(item).count
a = a & request.querystring(item)(i)
if i <> request.querystring(item).count then a = a & "-"
next
else
a = a & "[" & item & "]=" & request.querystring(item)
end if
next
注意:返回“[b]=1-2[c]=3”。
示例6:
a = request.servervariables("script_name") '返回执行脚本的虚拟路径,如:“/3/a.asp”。
b = request.servervariables("server_name") '返回服务器的IP地址,如:“127.0.0.1”。

for each item in request.servervariables
a = a & item & "=" & request.servervariables(item) & "
"
next
示例7:
response.cookies("web")("name") = "webnames"
response.cookies("web")("pswd") = "webpswds"
response.cookies("web" )= "pw=password&id=username"
for each item in request.cookies
a = a & item & "=" & request.cookies(item) & "
"
next
response.write a
注意:若输入时未输入关键字则全部更新COOKIES。
2、Response对象
集合Cookies
属性Buffer\CacheControl\Charset\ContentType\Expires\ExpiresAsolute\Ie\IsClientConnected\PICs\Status
方法AddHeader\AppendToLog\BinaryWrite\Clear\End\Flush\Redirect\Write
集合

属性:
Buffer——设置页面是否缓存,值为TRUE[默认]/FALSE,一般把response.buffer=false放在ASP文件首行,否则易出错。
ContentType——设置响应客户端额HTTP文件类型,ASP默认文件类型为“TEXT/HTML”。
常用类型有:TEXT/HTML、TEXT/PLAIN、TEXT/RTF、IMAGE/GIF、IMAGE/JPEG、APPLICATION/MSWORD。
方法:
clear——当BUFFER属性被设置成true时,可清除所有被缓存的web页面。否则,返回错误“缓冲功能已关闭”。
flush——当BUFFER属性为默认值(true)时,立即发送缓存在服务器端信息。否则,报错。
end——当BUFFER属性为默认值(true)时,立即将缓存信息发送并清除服务器端缓存信息。否则,报错。
addheader——增加一个要发送客户端应用程序的特殊HTTP标头。
appendTolog——可在服务器日志的尾端增加一个表项。比如,发生违反安全操作时可追加IP跟踪。
示例:1、文件下载指定名称
response.addheader("Content-Disposition","attachment;filename=文件名称.后缀名")
2、未指定文件名,以所

在ASP文件名为下载文件名和后缀名
Response.AddHeader("content-type","application/x-msdownload")
3、刷新页面
Response.AddHeader "REFRESH","60;URL=newpath/newpage.asp"
这等同于客户机端元素:

4、页面转向
Response.Status = "302 Object Moved"
Response.Addheader "Location","newpath/newpage.asp"
这等同于使用Response.Redirect方法:
Response.Redirect "newpath/newpage.asp"
5、强制浏览器显示一个用户名/口令对话框
Response.Status = "401 Unauthorized"
Response.Addheader "WWW-Authenticate","BASIC"
强制浏览器显示一个用户名/口令对话框,然后使用BASIC验证把它们发送回服务器。

常用类型:Response.AddHeader("content-type", "application/x-msdownload;");类型列表
".asa"="text/asa"
".asf"="video/x-ms-asf"
".asp"="text/asp"
".asx"="video/x-ms-asf"
".avi"="video/avi"
".awf"="application/vnd.adobe.workflow"
".biz"="text/xml"
".bmp"="application/x-bmp"
".bot"="application/x-bot"
".cat"="application/vnd.ms-pki.seccat"
".cdf"="application/x-netcdf"
".cdr"="application/x-cdr"
".cel"="application/x-cel"
".class"="java/*"
".cml"="text/xml"
".cmp"="application/x-cmp"
".cmx"="application/x-cmx"
".css"="text/css"
".dbf"="application/x-dbf"
".dbm"="application/x-dbm"
".dbx"="application/x-dbx"
".dll"="application/x-msdownload"
".doc"="application/msword"
".dot"="application/msword"
".drw"="application/x-drw"
".dwf"="Model/vnd.dwf"
".dwf"="application/x-dwf"
".dwg"="application/x-dwg"
".exe"="application/x-msdownload"
".gif"="image/gif"
".gp4"="application/x-gp4"
".htm"="text/html"
".html"="text/html"
".ico"="image/x-icon"
".ico"="application/x-ico"
".img"="application/x-img"
".java"="java/*"
".jpe"="image/jpeg"
".jpe"="application/x-jpe"
".jpeg"="image/jpeg"
".jpg"="image/jpeg"
".jpg"="application/x-jpg"
".js"="application/x-javascript"
".jsp"="text/html"
".m1v"="video/x-mpeg"
".m2v"="video/x-mpeg"
".m4e"="video/mpeg4"
".mdb"="application/msaccess"
".mdb"="application/x-mdb"
".mid"="audio/mid"
".midi"="audio/mid"
".mml"="text/xml"
".movie"="video/x-sgi-movie"
".mp1"="audio/mp1"
".mp2"="audio/mp2"
".mp2v"="video/mpeg"
".mp3"="audio/mp3"
".mp4"="video/mpeg4"
".mpa"="video/x-mpg"
".mpe"="video/x-mpeg"
".mpeg"="video/mpg"
".mpg"="video/mpg"
".pdf"="application/pdf"
".pdf"="application/pdf"
".pdx"="application/vnd.adobe.pdx"
".pic"="application/x-pic"
".png"="image/png"
".png"="application/x-png"
".ppt"="application/vnd.ms-powerpoint"
".ppt"="application/x-ppt"
".rm"="application/vnd.rn-realmedia"
".rv"="video/vnd.rn-realvideo"
".swf"="application/x-shockwave-flash"
".txt"="text/plain"
".wav"="audio/wav"
".wm"="video/x-ms-wm"
".wma"="audio/x-ms-wma"
".wml"="text/vnd.wap.wml"
".wmv"="video/x-ms-wmv"
".wmx"="video/x-ms-wmx"
".xht

ml"="text/html"
".xls"="application/vnd.ms-excel"
".xls"="application/x-xls"
".xlw"="application/x-xlw"
".xsl"="text/xml"

3、Session对象
集合Contents\StaticObjects
属性CodePage\LCID\SessionID\TimeOut
方法Abandon
事件Session_OnStart\Session_OnEnd
集合:
Contents——包含已用脚本命令添加到会话中的项目
Session.Contents.count——返回集合中元素个数
StaticObjects——包含通过标记创建的并给定了会话作用域的对象
属性:
CodePage——将用于符号映射的代码页
Lcid——现场标识
SessionID——返回用户的会话验证
TimeOut——应用程序会话状态的超时时限,以分钟为单位,默认为20分钟。
方法:
Abandon——破坏SESSION对象并释放其资源
事件:存在于golbal.asa文件中。
新增contents方法:
session.contents.remove(条目名称) 从SESSION对象的集合中删除指定条目
session.contents.removeall 删除所有SESSION集合中的条目
示例:
session("aa") = "asss"
session.contents.remove("aa")
response.write session("aa")

4、Application对象
集合Contents\StaticObjects
方法Lock\Unlock
事件Application_OnEnd\Application_EnStart
示例:
response.write application.contexts.count
'返回集合元素的个数
application.Lock
application("a") = "good"
application.Unlock
注意:Lock和UnLock方法只能对整个APPLICATION,不能对其单个要素使用。
新增contents方法:
application("aa") = "asss"
application.contents.remove("aa")
response.write application("aa")
5、Server对象
属性
ScriptTimeOut——规定一个脚本文件执行的最长时间,单位为秒,系统默认为90秒,更改值不得小于90秒,否则仍执行90秒限制。
方法
CreateObject——创建一个ActiveX Server组件变量实例。
HTMLEncode——根据HTMLENCODE编码原则,编码为ASCII形式的HTML文件
URLEncode——根据URL编码原则,编码为字符串形式
MapPath——转换绝对路径或虚拟路径为服务器端的真实路径或物理路径,"/"和"\"一样。

内置组件[数据库访问组件、广告轮显组件、浏览器兼容组件、文件超级链接组件、文件读取组件]
第三方组件[Permission checker组件——测试WEB用户对某页的访问权、MailSender组件]
示例:
a = server.HTMLEncode("good") '返回“<html>good</html>”
a = server.URLEncode("good") '返回“%3Chtml%3Egood%3C%2Fhtml%3E”
a = server.MapPath(request.servervariables("path_info")) '返回“D:\web\3\a.asp”
a = server.MapPath("/") '返回“D:\web”
a = server.MapPath("../../") '返回“D:\”
新增EXECUTE方法:
Server.Execute "file.asp" 相当于
示例:
response.write "测试文件1"
server.execute "s.asp"
新增GetLastError方

法:
该方法返回应用程序中发生的最后一个错误信息。
ASPCode——整型,由IIS产生的错误号,例如:0X800A009。
Number——整型,一个标准的COM错误代码。
Line——整型,产生错误的文件中的行号。
Column——整型,产错误的文件中的字符位置。
Description——字符串型,错误的简短说明。
ASPDescription——字符串型,如果错误和ASP相关,则是详细的说明。
File——字符串型,错误出现时正在处理的文件的名称。
Source——字符串型,引发错误的行的实际代码。
Category——字符串型,错误来源,即ASP内部脚本语言、或一个对象。
示例:
on error resume next
set errsub = server.GetLastError()
response.write "|错误号: |" & errsub.ASPCode & "|
"
response.write "|错误代码:|" & errsub.Number & "|
"
response.write "|错误行号:|" & errsub.Line & "|
"
response.write "|错误列号:|" & errsub.Column & "|
"
response.write "|错误说明:|" & errsub.Description & "|
"
response.write "|错误详释:|" & errsub.ASPDescription & "|
"
response.write "|错误文件:|" & errsub.File & "|
"
response.write "|错误代码:|" & errsub.Source & "|
"
response.write "|错误来源:|" & errsub.Category & "|
"
新增Transfer方法:接受被传递页面所含的REQUEST对象集合,比response.redirect更方便。
示例:
server.transfer("s.asp")
6、ObjectContext对象
方法SetAbort\SetComplete
事件OnTransactionAbort\OnTransactionCommit
该对象是在WEB页面内配合MTS(Microsoft Transaction Server)使用的。
当ASP.DLL遇到<% @Transaction=Required %>提示标志时,该WEB页面要使用分布式事务处理来完成,且数据的传输都必须在每一个数据传输点传输成功,否则失败时所有的数据更新或修改操作都是无效操作。
使用时注意两点:其一<%@transaction%>标识最好写在ASP第一行;其二若ASP应用程序存在多个ASP WEB页面,且每一个页面都需要分布式事务处理时,用户必须将每一个ASP应用程序文件都加上<%@transaction%>设置标识。
<%@Transaction=String%>
@Transaction的STRING值:
Required——若事务不存在,则ASP WEB页面将初始化一个新事务。但它可参与其他页面启动的事务。
Required_New——始终初始一个新事务,新事务科参与其他ASP页面,如果这些页面也支持事务的话。
Supported——可参与其他页面启动的事务。但是,若没事务存在也不创新事务。
Not_Supported——从不初始化一个事务,相当于没有指定@TRANSACTION指令。
方法
SetAbort——立即终止该页面内所进行的事务处理,但该事务被声明为失败,所有处理的数据都无效且必须被还原。
SetComplete——立即终止该页面内所进行的事务处理,此

次事务是无条件完成。
事件
OnTransactionAbort——该事件在事务失败时执行。
OnTransactionCommit——该事件在事务成功完成时执行。

三、内置函数
1、数字函数
Abs(number)——返回绝对值。参数可为数字、表达式或纯数字的字符串。
Atn(number)——返回正弦值。
Exp(number)——返回e的number次方的值。
Fix(number)——转换成一个整数(对于负数,只入不舍)。
Hex(number)——返回number的十六进制的值。
Int(number)——返回一个整数(对于负数,只入不舍)。
Oct(number)——返回number的八进制值。
Rnd(number)——产生一个随机数。
Round(number[,位数])——根据指定的十进制位数对number进行四舍五入。
Sgn(number)——返回数的正负号。
Sin(number)——返回数的正弦值。
Tan(number)——返回数的正切。
Log(number)——返回number的自然对数值。注意:数必须为正数。
Sqr(number)——返回数的平方根值。注意:数必须为正数。
num1 mod num2——返回num1除num2的余数,若整除返回0。
示例:
dim number
number = "-1.5"
response.write Abs(number) & "
" '1.5
response.write Atn(number) & "
" '-.982793723247329
response.write Exp(number) & "
" '.22313016014843
response.write Fix(number) & "
" '-1
response.write Hex(number) & "
" 'FFFFFFFE
response.write Int(number) & "
" '-2
response.write Oct(number) & "
" '37777777776
response.write Rnd(number) & "
" '.474007
response.write Round(number) & "
" '-2
response.write Sgn(number) & "
" '-1
response.write Sin(number) & "
" '-.997494986604054
response.write Tan(number) & "
" '-14.1014199471717
number = "1"
response.write Log(number) & "
" '0
response.write Sqr(number) & "
" '1
2、字符串函数
Asc(string)——返回第一个字符的ASCII码。
Chr(number)——将相应的ASCII码转换成键盘字符。
InStr([start,]string1,string2[,compare])——返回字符串2在字符串1第一次出现的位置。
InStrRev([start,]string1,string2[,compare])——返回字符串2在字符串1最后出现的位置。
Join(list[,分隔符])——把一个数组中的所有字符串连接起来。
Lcase(string)——以小写字符格式化。
Len(string|varname)——返回字符串的字节长度。
Left(string,length)——返回指定长度的字符串左部分。
Ltrim(string)——删除字符串左边多余的空格。
Mid(string,start[,length])——返回指定长度的字符串的子串。
Replace(expression,被替换字符串,替换字符串[,start[,count[,compare]]])——用指定字符串替换。
Right(string,length)——返回指定长度的字符串的右部分子串。
RTim(string)——删除字符串右边多余的空格。
Space(number)——用指

定数量的空格创建字符串。
Split(string,[strings[,count[,cmpare]]])——把一个字符串分割并转换成数组。
StrComp(string1,string2[,compare])——字符串比较。
StrReverse(string)——对字符串进行倒序。
String(number,char)——用nunmber个字符创建字符串。
Trim(string)——删除字符串两边的多余空格。
Ucase(string)——用大写字母格式化字符串。
示例:
dim str,strs,var(2)
str = " ABCDabcd "
strs = "abcd"
var(0)="a":var(1)="b":var(2)="c"
response.write "|小写|" & Lcase(str) & "|
" '|小写| abcdabcd |
response.write "|大写|" & Ucase(str) & "|
" '|大写| ABCDABCD |
response.write "|长度|" & Len(str) & "|
" '|长度|10|
response.write "|左空|" & Ltrim(str) & "|
" '|左空|ABCDabcd |
response.write "|右空|" & Rtrim(str) & "|
" '|右空| ABCDabcd|
response.write "|全空|" & Trim(str) & "|
" '|全空|ABCDabcd|
response.write "|中段|" & Mid(str,2) & "|
" '|中段|ABCDabcd |
response.write "|左段|" & Left(str,2) & "|
" '|左段| A|
response.write "|右段|" & Right(str,2) & "|
" '|右段|d |
response.write "|ASCI|" & Asc(str) & "|
" '|ASCI|32|
response.write "|ASCI|" & Chr(32) & "|
" '|ASCI|空格|
response.write "|左位|" & InStr(str,strs) & "|
" '|左位|5|
response.write "|右位|" & InStrRev(str,strs) & "|
" '|右位|6|
response.write "|替换|" & Replace(str,"a","s") & "|
"'|替换| ABCDsbcd |
response.write "|倒序|" & StrReverse(str) & "|
" '|倒序| dcbaDCBA |
response.write "|十空|" & space(10) & "|
" '|十空| |
response.write "|十加|" & string(10,"+") & "|
" '|十加|++++++++++|
response.write "|链接|" & Join(var,"-") & "|
" '|链接|a-b-c|
response.write "|断开|" & Ubound(split(Join(var,"-"),"-")) & "|
" '返回数组下标2
response.write "|匹配|" & StrComp("ab","AB") & "|
" '|匹配|1|,0表示大小写、长度等完全匹配
注意:若定义变量名为String,则VB函数String调用失败。
字节型函数:
LenB(string)——返回字符串里的字节数目
MidB(string,start,length)——从字符串的start字符开始读取length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾。
LeftB(string,length)——从字符串的左边取得length长度的字符串
RightB(string,length)——从字符串的右边取得length长度的字符串
InStrB([starts],string1,string2)——返回字符串1在字符串2中第一次出现的位置。若省略start表示从第一个字符开始寻找。
InStrRevB(String1,string2)——和InStrB功能详细,不过是从字符串后边往前寻找
AscB(string)——返回字符串第一个字符的ASCII码。ASCW表示返回一个双字节字符的ASCII码,如汉字。
ChrB(int)——返回int数字表示的ASCII码对应的字符。
3、时间函数
Date——根据所用的系

统返回时间。
DateAdd(interval,number,date)——向date对象添加指定的时间间隔。
DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])——返回两个日期之间的间隔。
DatePart(interval,date[,firstdayofweek[,firstweekofyear]])——返回Date对象指定部分。
其中参数interval接受如下所示的值。
yyyy[年]、q[季度]、m[月]、y[一年的第几天]、d[天]、w[星期几]、ww[一年的第几个星期]、h[小时]、m[分钟]、s[秒钟]
DateSerial(year,month,day)——转换成Date数据子类型的变量值。
DateValue(date)——转换成Date数据子类型的变量值。
Day(date)——根据参数date返回该天在一个月的号数。
Hour(time)——根据参数time的值返回小时。
Minute(time)——返回分钟值。
Month(date)——返回以数字表示的月份。
MonthName(month[,abbreviate])——返回以名称表示的月份。注意:参数为数字。
Now——根据系统,返回当前的日期和时间。
Second(time)——根据参数time的值返回该分的第几秒。
Time——根据系统返回当前的时间。
TimeSerial(hour,minute,second)——返回date变量体。
Weekday(date[,firstdayofweek])——用数字形式返回星期几。
WeekDayName(weekday,abbreviate,firstdayofweek)——用名称形式返回星期几。注意:参数为数字。
Year(date)——根据参数返回年份。
示例:
tm = #2001/2/23 15:54:37#
response.write "|设置|" & tm & "|
"
response.write "|date|" & Date & "|
"
response.write "|time|" & Time & "|
"
response.write "|now |" & Now & "|
"
response.write "|year|" & Year(tm) & "|
"
response.write "|mon |" & Month(tm) & "|
"
response.write "|day |" & Day(tm) & "|
"
response.write "|hour|" & Hour(tm) & "|
"
response.write "|min |" & Minute(tm) & "|
"
response.write "|sec |" & Second(tm) & "|
"
response.write "|week|" & Weekday(tm) & "|
" '有参数
response.write "|周几|" & Weekdayname(7) & "|
" '有参数
response.write "|月份|" & MonthName(7) & "|
" '有参数
response.write "|日期|" & DateValue("20-12-2001 8:23:24") & "|
"
response.write "|日期|" & DateSerial(2001,12,1) & "|
"
response.write "|时间|" & TimeSerial(12,23,24) & "|
"
response.write "|追加|" & DateAdd("yyyy",2,tm) & "|
"
response.write "|间隔|" & DateDiff("yyyy",tm,now) & "|
"
response.write "|天数|" & DatePart("y",tm) & "|
"
response.write "|日子|" & DatePart("d",tm) & "|
"

'|设置|2001/2/23 15:54:37|
'|date|2011/2/23|
'|time|16:08:09|
'|now |2011/2/23 16:08:09|
'|year|2001|
'|mon |2|
'|day |23|
'|hour|15|
'|min |54|
'|sec |37|
'|week|6|
'|周几|星期六|
'|月份|七月|
'|日期|2001/12/20|
'|日期|2001/12/1|
'|时间|12:23:24|
'|追加|2003/2/23 15:54:37|
'|间隔|10|
'|天数|54|
'|日子|23|
注意:1、now()\d

ate()\time()无参数否则返错;剩下的则必须有参数。另外,参数可以用""或##引用。
2、周日为1,周一为2。
4、数组函数
Array(arglist)——创建一个数组。
Filter(inputstring,value[,include[,compare]])——根据筛选条件创建一个新的数组。inputstring被查询字符串一维数组,value查询记号,include包含与否默认TRUE,compare匹配类型[0-二进制,1-文字,2-仅用于ACCESS进行信息比较]。
LBound(arrayname[,下标])——返回数组某维的最低界限。在当前版本中,总返回0值。
Split(expression[,delimiter[,count,[compare]]])——把一个字符串分割并转换成数组。
UBound(arrayname[,下标])——返回数组某维的上边界,缺省维数时为第一维。
示例1:
dim ary,arys
arys = array(1,23,4) '将变量更改为数组变量,类型为动态数组
ary = split("a-b-c","-") '将字符串分割成元素数组
response.write ary(1) '数组的索引从0开始
erase ary '更新数组
redim ary(12) '可以重新更新数组
response.write ubound(ary,1) '显示数组下标12,注意若用erase更新数组后,则显示“下标越界”
response.write isarray(ary) '判断是否为数组类型,TRUE
response.write isempty(ary) '判断是否未初始化,FLASE
response.write isnull(ary) '判断是否错误量,FALSE
示例2:
a = array("asdefdsefdsr","s","ses")
ary = filter(a,"se")
response.write ary(0) & ary(ubound(ary))
注意:使用FILTER函数,只要含查询记号,则整个元素(不仅仅是含查询记号的部分)都被选择。
5、转换函数
CBool(expression)——转换成Boolean数据类型变量。参数需为可转换成数值的表达式,仅0和empty为FALSE。
CByte(expression)——转换成Byte数据类型变量。注意,此为数值变量,非二进制变量。
CCur(expression)——转换成Currency数据类型变量。参数不可为负。
CDate(expression)——转换成Date类型变量。
CDbl(expression)——转换成Double数据类型变量。
Chr(charcode)——把ASII码转换成键盘字符。
CInt(expression)——转换成Integer数据类型变量。
CLng(expression)——转换成Long数据类型变量。
CSng(expression)——转换成Single数据类型变量。
CStr(expression)——转换成String数据类型变量。
示例:
dim nstr
nstr = "0"
response.write "|CDbl|" & CDbl(nstr) & "|
"
response.write "|Cint|" & CInt(nstr) & "|
"
response.write "|Clng|" & CLng(nstr) & "|
"
response.write "|CSng|" & CSng(nstr) & "|
"
response.write "|Cbyte|" & Cbyte(nstr) & "|
"
response.write "|CCur |" & CCur(nstr) & "|
"
response.write "|Cbool|" & Cbool(nstr) & "|
"
response.write "|Cdate|" & CDate(nstr) & "|
"
response.write "|CStr |" & CStr(nstr) & "|
"
注意:1、Cdate参数为数字时,-1-1899/12/29,0-0

:00:00,1-1899/12/31,3-1900/1/2。
2、Cbool参数仅0和empty为FALSE,参数为数字外类型含null返错“类型不匹配”。
6、判断函数
IsArray(varname)——确定变量是否是一个数组。
IsDate(expression)——确定表达式是否能转换成日期格式。
IsEmpty(varname)——确定变量是否已经初始化。
IsNull(expression)——确定表达式是否为空。
IsNumeric(expression)——确定表达式的结果是否是一个数。
IsObject(expression)——确定表达式是否是个对象。
示例:
dim varr
varr = ""
varr = array(1,2,3)
varr = "12:20:30"
varr = "124"
set varr = server.createobject("adodb.connection")
response.write "|空 |-|" & Isempty(varr) & "|
"
response.write "|NULL|-|" & Isnull(varr) & "|
"
response.write "|数组|-|" & Isarray(varr) & "|
"
response.write "|时间|-|" & Isdate(varr) & "|
"
response.write "|数字|-|" & Isnumeric(varr) & "|
"
response.write "|对象|-|" & Isobject(varr) & "|
"
'1、未定义或未初始化变量,可使EMPTY和数字为真;
'2、""相当于初始化变量,故EMPTY为假。
'3、判断的根据为是否可转化,能够转化则为真。
7、格式化函数
FormatCurrency(expression[,NumDigitsAfterDecimal[,IncludeLeadingDigit[,UseParensForNegativeNumbers[,GroupDigits]]]])——格式化currency形式。
expression 要进行格式化的数字样式的表达式。
NumDigitsAfterDecimal 小数点之后有多少个数字,若实际数字不足这么多,则以0补足。-1表示使用计算机设置。
IncludeLeadingDigit 是否显示小数点前面的零。-1是;0否;-2使用计算机设置。
UseParensForNegativeNumbers 是否将负值置于括号中(而不使用负号)。-1是;0否;-2使用计算机设置。
GroupDigits 是否使用数字分组,使结果形如:1,000,000。-1是;0否;-2使用计算机设置。
格式化后,数字前面的货币符号是人民币还是美元,还是其他的,取决于计算机的区域设置。
FormatNUmber(Expression[,同上])——对进行格式化。
FormatPercent(Expression[,同上])——对百分数进行格式化。
FormatDateTime(Date[,NamedFormat])——对日期及时间进行格式化输出。
NamedFormat 指示要格式化为什么样的格式。
0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。
1 使用计算机区域设置中指定的长日期格式显示日期。
2 使用计算机区域设置中指定的短日期格式显示日期。
3 使用计算机区域设置中指定的时间格式显示时间。
4 使用 24 小时格式 (hh:mm) 显示时间。
示例:
num = -1234.56789
dat = now()
response.write "|货币|" & FormatCurrency(num) & "|
"
response.write "|数字|" &

FormatNUmber(num) & "|
"
response.write "|百分|" & FormatPercent(num) & "|
"
response.write "|日期|" & FormatDateTime(dat) & "|
"
8、创建函数
CreateObject(servername.typename)——创建一个组件对象。
GetObject([pathname][,class])——从指定的文件中返回指定的动态对象。
LoadPicture(picname)——载入一个图片对象。
9、特殊函数
ScriptEngine——返回使用的脚本语言的名称。
ScriptEngineBuildVersion——返回使用的脚本引擎版本。
ScriptEngineMaorVersion——返回使用的脚本引擎的大版本号。
TypeName(varname)——返回子类型的名称。
VarType(varname)——返回子类型的值。
说明:
示例1:
response.write "|脚本名称|" & ScriptEngine & "|
" '|VBScript|
response.write "|脚本引擎|" & ScriptEngineBuildVersion & "|
" '|16546|
response.write "|大版本号|" & ScriptEngineMaorVersion & "|
" '||
示例2:
dim vars
' vars = empty
' vars = null
' vars = cint(1)
' vars = clng(1)
' vars = csng(1)
' vars = cdbl(1)
' vars = ccur(1)
' vars = cdate(1)
' vars = cstr(1)
' set vars = new regexp
' set vars = server.getlasterror()
' vars = cbool(1)
' vars = cbyte(1)
' vars = array(1,2,3,4)
' vars = formatpercent(1) '百分率表征为字符串型
' set vars = var.getfolder("d:\web\3\")
response.write "|类型名称|" & TypeName(vars) & "|
"
response.write "|类型数值|" & VarType(vars) & "|
"
注意:TypeName(err) = Object,VarType(err) = 3

显示【类型值-类型名】
0-Empty
1-Null
2-Integer
3-Long
4-Single
5-Double
6-Currency
7-Date
8-String\File\Folder\Connection
9-IRegExp2\FileSystemObject\TextStream\Recordset\IASPError
11-Boolean
17-Byte
8204-Variant()

【注意:VB部分不一样】
[vbEmpty = 0 ]
[vbNull = 1]
[vbInteger = 2 ][vbLong = 3 ][vbSingle = 4 ][vbDouble = 5 ]
[vbCurrency = 6 ]
[vbDate = 7 ]
[vbString = 8 ]
[vbObject = 9 ]
[vbError = 10]
[vbBoolean = 11]
[vbVariant = 12 ]
[vbDataObject = 13 ]
[vbDecimal = 14 ]
[vbByte = 17]
[vbArray = 8192 ]
[vbUserDefinedType = 36 ]
四、内置组件
1、FileSystem组件
调用组件语句:
set myfileob = server.createobject("scripting.FileSystemObject")
方法:
1.1、CreateTextFile——创建一个文本文件,该方法有一个必选参数和两个可选参数。filespecifier是必选参数,用来设定文件的路径或相对路径。overwrite为可选参数,表示如果该路径下有同名文件则是否进行覆盖操作,默认为TRUE(覆盖)。unicode参数默认为FALSE,表示该文件是否用ASC码形式进行创建和保存。注意:若创建时文件已存在而参数又选FALSE时,则服务器返回“文件已存在”错误。
Write(string)——将一个字段写入文本文件,但不换行。
WriteLine(string)——将一个字段写入文本文件,

换行。
WriteBlankLines(n)——用于输入连续换行的次数。
Close——关闭一个文本文件,并释放资源。
set myfile = myfileob.createtextfile("d:\web\3\a.asp")
1.2、OpenTextFile——打开一个文本文件,该方法有一个必选参数和两个可选参数。whichfile是必选参数,表示文件路径,第二参数默认为1表示只读,2表示写,8表示追加。第三参数默认为FALSE表示若文件不存在则不创建。注意若选1而又有写操作,则写入时发生“错误的文件模式”。
AtEndOfLine——判断当前字符是否处于文件中一行的行尾,如果不是,则为FALSE。
AtEndOfStream——判断是否到了文件的结尾,如果不是,则为FALSE。
Read(n)——从文本文件中读取n个字符。
ReadLine——从文本文件中读取给定行号的一行
ReadAll——读取文本文件的所有内容
Skip(n)——读取文件时,跳过n个字符
SkipLine——读取文件时,跳过一行
Close——关闭已经打开的文件
示例:
set myfileob = server.createobject("scripting.filesystemobject")
set myfile = myfileob.createtextfile("d:\web\3\test.asp")
myfile.write("<%" & chr(13) & chr(10) & "a=""bad""")
myfile.writeblanklines(10) '紧接上面字符换行10处
myfile.writeline("a=""good""")
myfile.write("%"&">") '%特殊注意事项
myfile.close
set myfile = nothing
set myfile = myfileob.opentextfile("d:\web\3\test.asp")
response.write myfile.read(2) & chr(13) & chr(10)
myfile.skip(2) '参数为2时则跳过换行标识
if myfile.atendofline then response.write "行尾"
response.write myfile.readline
myfile.skipline
response.write myfile.readall
if myfile.atendofstream then response.write "文后"
myfile.close
set myfile = nothing
set myfileob = nothing
对文件的其他操作方法:
1.3、CopyFile "源文件","目的","是否覆盖"——复制文件
1.4、MoveFile "源文件","目的"——如文件已存在则不覆盖
1.5、DeleteFile "源文件"——用于删除文件,参数也可以进行多个文件的删除操作,若果没有符合通配符的文件则报错。如:myfileob.deletefile "d:\web\3\*.html"
1.6、FileExists()——用于返回是否所查询的文件存在。
示例:
set myfileob = server.createobject("scripting.filesystemobject")
myfileob.copyfile "d:\web\3\test.asp","d:\web\3\tt.asp"
'注意如路径不存在,返回“路径未找到”;若文件存在,则直接覆盖
myfileob.movefile "d:\web\3\tt.asp","d:\web\1\tts.asp"
'注意若路径不存在,返回“路径未找到”;若文件存在,则返回“文件已存在”
if myfileob.fileexists("d:\web\1\tts.asp") then
myfileob.deletefile "d:\web\1\tts.asp"
'注意若路径不存在,返回“路径未找到”;若文件不存在,则返回“文件未找到”
else
response.write "要删除的

文件不存在"
end if
set myfileob = nothing
1.7、GetFile——获得文件对象
Attributes——返回文件的系统属性,数字值【normal=0,read-only=1,hidden=2,system=4,volume=5,directory=16,archive=32,alias=64,copressed=128】
DateCreated——返回文件的创建日期和时间,如:"2011/2/22 9:12:50"。
DateLastAccessed——返回文件上次被使用的日期和时间。
DateLastModified——返回文件上次被修改的日期和时间。
Name——返回文件名,如:"test.asp"。
Path——返回文件的完整路径,如:"D:\web\3\test.asp"。
Size——返回文件的大小,如:"88"。
Type——返回文件类型,如:“ASP 文件”。
Drive——返回文件所在的驱动器,如“ d:”。
ParentFolder——返回文件所在的文件夹,如“ D:\web\3”。
示例:
set myfileob = server.createobject("scripting.filesystemobject")
set myfile = myfileob.getfile("d:\web\3\test.asp")
response.write "文件的系统属性: " & myfile.Attributes &"
"
response.write "文件的创建日期: " & myfile.DateCreated &"
"
response.write "文件的上次使用日期:" & myfile.DateLastAccessed &"
"
response.write "文件的上次修改日期:" & myfile.DateLastModified &"
"
response.write "文件所在驱动器: " & myfile.Drive &"
"
response.write "文件名: " & https://www.360docs.net/doc/3211116376.html, &"
"
response.write "文件所在文件夹: " & myfile.ParentFolder &"
"
response.write "文件的完整路径: " & myfile.Path &"
"
response.write "文件的大小: " & myfile.Size &"
"
response.write "文件的类型: " & myfile.Type &"
"
set myfileob = nothing

1.8、CreateFolder "新建文件夹"——创建一个文件夹
1.9、CopyFolder "源文件夹","目的","是否覆盖"——复制文件夹,是否覆盖默认为FALSE。
1.10、MoveFolder "源文件夹","目的"——移动文件夹
1.11、DeleteFolder "文件夹"——删除文件夹
1.12、FolderExits("查询文件夹")——检测文件夹是否存在
示例:
set myfileob = server.createobject("scripting.filesystemobject")
myfileob.createfolder "d:/web/40\"
myfileob.copyfolder "d:\web\40","d:/web/30"
myfileob.movefolder "d:/web/30","d:\web\20"
if myfileob.folderexists("d:/web/40") then myfileob.deletefolder "d:/web/40"
if myfileob.folderexists("d:/web/30") then myfileob.deletefolder "d:/web/30"
if myfileob.folderexists("d:/web/20") then myfileob.deletefolder "d:/web/20"
set myfileob = nothing
注意:1、/和\一样,除创建文件夹时,在文件夹名后可加/\外,其余均不可在最后留/\。2、创建、复制、移动删除目的均不得存在文件夹,否则返回“文件夹已存在”的错误提示。
1.13、GetFolder("文件夹")——创建一个文件夹对象
Name——返回当前目录的名称
Size——返回当前目录的大


ParentFolder——返回上一级目录
IsRootFolder——返回值表示当前是否为根目录
CopyFolder "目的",false——复制至新位置,默认参数值为FALSE,不覆盖;若有,则返错。
MoveFolder "目的"——移动当前文件夹至新位置。若转移,该文件对象就被替换成新目标对象。
DeleteFolder——删除当前文件夹。
1.13.1、Files——创建一个该目录下文件的集合,返回当前目录下的所有文件,但子目录除外
1.13.2、SubFolders——创建一个该目录下子目录的集合,即当前目录下所有子目录的集合
示例1:
set myfileob = server.createobject("scripting.filesystemobject")
set myfolder = myfileob.getfolder( "d:/web/40\")
response.write "文件夹名称为:" & https://www.360docs.net/doc/3211116376.html, & "
"
response.write "文件夹名大小:" & myfolder.size & "
"
response.write "文件夹父目录:" & myfolder.parentfolder & "
"
response.write "是否为根目录:" & myfolder.isrootfolder & "
"
myfolder.copy "d:/web/30"
myfolder.move "d:/web/20"
myfolder.delete
if myfileob.folderexists("d:/web/30") then myfileob.deletefolder "d:/web/30"
if myfileob.folderexists("d:/web/20") then
myfileob.deletefolder "d:/web/20"
else
response.write "通过移动文件夹转移被删除"
end if
set myfileob = nothing
示例2:
set myfileob = server.createobject("scripting.filesystemobject")
set myfolder = myfileob.getfolder( "d:/web/40")
for each item in myfolder.files
response.write item & "
"
next
for each item in myfolder.subfolders
response.write item & "
"
next
set myfolder = nothing
set myfileob = nothing
对驱动器的处理方法
1.14、DriveExists(盘符)——判断是否存在该驱动器,存在返回TRUE。注意:参数只能为“D”“D:”“d:/”或“d:\”形式。
1.15、GetDriveName(地址)——返回该路径的驱动器名称。注意:参数路径可以不真实也返盘符"d:",但若不是"盘符:/*/*"形式则为空。
1.16、Drives——返回机器所有的驱动器集合。注意:硬盘返回类型为2,光驱返回类型为4,在调用光驱的属性时因打不开而返错。
1.17、GetDrive(盘符)——创建一个驱动器的对象。注意:参数只能为“D”“D:”“d:/”或“d:\”形式。
DriveLetter——返回当前驱动器的盘符,如“D”。
DriveType——返回当前驱动器的类型,如“2”。
ShareName——返回该驱动器的共享名称,如“”。
Path——指示当前驱动器的路径,如“D:”。
若是驱动盘为光驱则不能显示下列属性:
TotalSize——返回该驱动器的总容量,如“87187935232”。
AvailableSpace——返回当前驱动器的可用空间,如“82919542784”。
FreesPace——用字节数返回当前的可用空间大小,如“82919542784”。
SerialN

umber——返回当前驱动器的序列号,如“-1778266885”。
RootFolder——将该驱动器作为一个根目录返回一个FOLDER对象,如“D:\”。
示例:
set myfileob = server.createobject("scripting.filesystemobject")
response.write "A:盘是否存在=" & myfileob.DriveExists("a:") & "
"
response.write "所在驱动器为=" & myfileob.GetDriveName(server.mappath("../")) & "
"
response.write "驱动器名称 类型 总容量 可用空间
"
for each item in myfileob.drives
response.write "驱动器" & item & " " & item.DriveType
if item.DriveType = 2 then
response.write " " & item.TotalSize
response.write " " & item.AvailableSpace
end if
response.write "
"
next
mydd = "a:"
if myfileob.DriveExists(mydd) then
set mydrive = myfileob.GetDrive(mydd) '驱动盘符后加不加":"、"\"、"/"均一样
response.write "D盘的盘符: " & mydrive.DriveLetter & "
"
response.write "D盘的驱动器类型: " & mydrive.DriveType & "
"
response.write "D盘的共享名称: " & mydrive.ShareName & "
"
response.write "D盘的驱动器的路径 :" & mydrive.Path & "
"
if mydrive.DriveType = 2 then
response.write "D盘的总容量: " & mydrive.TotalSize & "
"
response.write "D盘的可用空间:" & mydrive.AvailableSpace & "
"
response.write "D盘的可用空间(字节数大小):" & mydrive.FreesPace & "
"
response.write "D盘的驱动器的序列号: " & mydrive.SerialNumber & "
"
response.write "D盘对象:" & mydrive.RootFolder & "
"
end if
set mydrive = nothing
else
response.write mydd & "驱动器不存在
"
end if
set myfileob = nothing
示例:[递归遍历目录,注意参数尾位不要带\/]
sub bianli(path)
dim mypp
mypp = path & "/"
set myob = server.createobject("scripting.filesystemobject")
set myff = myob.getfolder(mypp)
for each files in myff.files
response.write mypp & https://www.360docs.net/doc/3211116376.html, & "[" & files.size & "]
"
next
for each folders in myff.subfolders
response.write mypp & https://www.360docs.net/doc/3211116376.html, & "[" & folders.size & "]
"
call bianli(mypp & https://www.360docs.net/doc/3211116376.html,)
next
set myff = nothing
set myob = nothing
end sub
call bianli("d:/web")

2、ADO组件
ADO时一项微软的技术,会随着微软的IIS被自动安装,它是一个访问数据库数据的编程接口。
ADO对象共享机制,便于不同的WEB页面对数据库的链接都可以共享同一个CONN对象。
connection侧重数据库链接,command侧重sql查询语句,recordset侧重查询出字段的存储。故此,conn依赖于应用程序与数据库的链接状况,comm依赖于conn,redt依赖于前两者。
当仅更新数据时,应采用SQL语句而非RS对象,这样可减少系统资源的消耗。
对象名称 功能描述
Connection 提供对数据库服务器的链接
Command 提供对数据

库服务器的数据查询
Errors 由多个ERROR对象构成的对象集合
Error 提供处理错误的功能
Fields 由多个返回的数据字段构成的数据集合
Field 由数据库服务器返回的单一数据字段
Parameters 由多个Parameter对象所构成的集合
Parameter 单独的一个parameter对象,包含可能的参数
Properties 由多个property对象构成的对象集合
Property 提供属性功能
Recordset 由数据库服务器返回的记录集


2.1、Connection对象
属性
属性名称 默认值 读写状态 功能描述
Attributes 0-可读写可读写 控制事务处理(Transaction)后的新事务的自启行为
CommandTimeout 30 可读写 指示在终止尝试或产生错误之前执行命令期间需等待的时间
ConnectionString 可读写 指定Connection对象的数据库连接信息
ConnectionTimeout 15 可读写 指示在终止尝试和产生错误前建立连接所等待的时间
CursorLocation 2 可读写 设置或返回游标服务的指针类型
DefaultDataBase 只读 指定Connection对象的默认数据库名称
IsolationLevel 4096 可读写 控制事务处理(Transaction)时的隔离级别
Mode 0|16 可读写 控制connection对象所共享的数据库模式,即设置或返回PROVIDER的访问权限
Provider 可读写 设置好或返回数据库提供者的名称
State 1开|0关 只读 返回一个描述连接是打开还是关闭的值
Version 6.1 只读 表示ADO对象的版本号

方法:
方法名称 功能描述
Close 关闭Connectiont对象与数据库的链接。
Execute 用于进行数据库数据的查询并可返回Recordset对象
Open 用于打开一新的Connectiont对象。
BeginTrans 打开事务处理。当数据库允许嵌套事务处理时,当使用BeginTrans方法打开时,若返回1表示处于最上面一层。
CommitTrans 提交所有事务处理结果。若处于嵌套事务内部,则最内层的事务处理会被终止并进行数据库更新操作。
RollbackTrains 用于放弃所有事务处理结果。

集合
Errors集合——包含CON对象的所有ERROR对象。
Properties——包含CON对象的所有Property对象。

注意:1、CON对象字符串链接方式有两种。
方式一:"driver={microsoft access driver (*.mdb)};dbq=" & server.mappath("#main info.mdb")
方式二:"Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("#main info.mdb")
区别:1、方式一链接迅捷,方式二功能更多。
2、方式一的ConnectionString属性提示为[Provider=MSDASQL.1;],DefaultDataBase属性提示为[D:\web\3\#main info],Mode属性提示为[0],Provider属性提示为[MSDASQL.1]。
2、方式二的ConnectionString属性提示为[Provider=Microsoft.Jet.OLEDB.4.0;……],DefaultDataBase属性提示为[空],Mode属性提示为[16],Provider属性提示为[Microsoft.Jet.OLEDB.4.0]。

2、CON对象关闭后不许使用DefaultDataBase属性,否则报错。

2.1.1.1、Attributes——用于控制事务处理(Transaction)时的行为。该属性即使Connectiont对象被打开或关闭,都允许程序设计人员随时更改,甚至当Connectiont对象正进行事务处理数据也可以对其进行修改操作。
另外解释:Attributes 属性对 Connection 对象拥有读写权限。并且其值可以是一个或多个 XactAttributeEnum 值的和。默认值为零 (0)。
属性值 属性名称 功能描述
0
131072 AdXactCommitRetaining 表示在CommitTrans方法被执行后无需再调用BeginTrans方法,Connectiont对象会自动启动事务处理。
262144 AdXactAbortRetaining 表示在BegiinTrans方法被执行后无需再调用BeginTrans方法,Connectiont对象会自动启动事务处理。
2.1.1.2、CommandTimeout——用于设定Execute方法的最长执行截止时间,默认值为30秒,若设为0则无限期等待直到Execute方法执行完毕。
2.1.1.3、ConnectionString——用于指定Connectiont对象的数据库链接信息。
2.1.1.4、ConnectionTimeout——用于设定Open方法的最长执行截止时间,默认值为15秒,若设为0则无限期等待直到Open方法执行完毕。
2.1.1.5、CursorLocation——用于控制内定指针(Cursor)的类型。
属性值 名称 功能描述
1 AdUseClient 不使用游标服务
2 AdUseServer 默认值,数据库服务器响应的数据在服务器端做数据存取的处理
3 AdUseClientBatch由数据库服务器响应的数据可动态的返回至客户端、切断链接做处理、再链接做数据更新
2.1.1.6、DefaultDataBase——用于指定Connectiont对象的默认数据库。
2.1.1.7、IsolationLevel——用于控制事务处理(Transaction)时的时刻。
属性值 名称 功能描述
-1 AdXactUnspecified 无法使用指定的隔离级别,因为提供者正在使用不同的隔离级别,而且该级别无法被确定。
16 AdXactChaos 无法覆盖更高级别的事务。
256 AdXactBrowse 可以从一个事务中查看其他事务中未提交的更改。
4096 AdXactCursorStability 只能从一个事务中查看其他事务中提交的更改。
65536 AdXactRepeatableRead 不能从一个事务中查看其他事务中所作的修改,但是重新查询可以检索新的 Recordset 对象。
1048576 AdXactIsolated 该事务与其他事务隔离执行。
2.1.1.8、Mode——用于控制Connectiont对象所共享数据库的模式。当多个CON对象共享同一个数据库服务时,该属性允许程序设计人员设定CON对象的共享层次,以决定共享对象之间的读写模式。
属性值 名称 功能描述
0 AdModeUnknown 权限尚未设置或不能确定权限
1 AdModeRead 只读权限
2 AdModeWrite 只写权限
3 AdModeReadWrite 读写权限
4 AdModeShareDenyRead 禁止其他人以读权限打开连接

相关文档
最新文档