ASP語言的(de)特點:
1.允許使用(yòng)VBscript或java script簡易Script語言,并可(kě)在文件中結合Html;
2.無需編譯,由WEBserver執行産生;
3.與任何ActiveX Script兼容;
4.ASP原始代碼不會傳到客戶端,客戶端顯示的(de)是執行結果。
VBscript常用(yòng)函數:
1.數值型函數:
abs(num): 返回絕對(duì)值
sgn(num): num>0 1; num=0 0; num<0 -1;判斷數值正負
hex(num): 返回十六進制值 直接表示:&Hxx 最大(dà)8位
oct(num): 返回八進制值 直接表示:&Oxx 最大(dà)8位
sqr(num): 返回平方根 num>0
int(num): 取整 int(99.8)=99; int(-99.2)=100
fix(num): 取整 fix(99.8)=99; fix(-99.2)=99
round(num,n): 四舍五入取小數位 round(3.14159,3)=3.142 中點數值四舍五入爲近偶取整 round(3.25,1)=3.2
log(num): 取以e爲底的(de)對(duì)數 num>0
exp(n): 取e的(de)n次幂 通(tōng)常用(yòng) num^n
sin(num): 三角函數,以弧度爲值計算(suàn) (角度*Pai)/180=弧度 con(num); tan(num); atn(num)
2.字符串函數:
len(str):計算(suàn)字符串長(cháng)度 中文字符長(cháng)度也(yě)計爲一!
mid(str,起始字符,[讀取長(cháng)度]):截取字符串中間子字符串
left(str,nlen):從左邊起截取nlen長(cháng)度子字符串
right(str,nlen):從右邊起截取nlen長(cháng)度子字符串
Lcase(str):字符串轉成小寫
Ucase(str):字符串轉成大(dà)寫
trim(str):去除字符串兩端空格
Ltrim(str):去除字符串左側空格
Rtrim(str):去除字符串右側空格
replace(str,查找字符串,替代字符串,[起始字符,替代次數,比較方法]):替換字符串
注:默認值:起始字符 1;替代次數 不限;比較方法 區(qū)分(fēn)大(dà)小寫(0)
InStr([起始字符,]str,查找字符串[,比較方法]):檢測是否包含子字符串 可(kě)選參數需同時(shí)選 返回起始位置
InStrRev(str,查找字符串[,起始字符][,比較方法]):反向檢測是否包含子字符串 返回起始位置
space(n):構造n個(gè)空格的(de)字符串
string(n,str):構造由n個(gè)str第一個(gè)字符組成的(de)字符串
StrReverse(str):反轉字符串
split(str,分(fēn)割字符串[,次數][,比較方法]):以分(fēn)割字符串爲分(fēn)割标志将字符串轉爲字符數組 可(kě)選參數需同時(shí)選
3.數據類型轉換函數:
Cint(str):轉換正數 True -1;False 0;日期 距離1899/12/31天數;時(shí)間 上午段 0;下(xià)午段 1;
Cstr(str):日期 輸出格式 yyyy/mm/dd;時(shí)間 輸出格式 Am/Pm hh:mm:ss
Clng(str):與Cin()類似
Cbool(num):num不爲零 True;反之 False
Cdate(str):轉換日期格式 0:#Am 12:00:00#;正數 距離1899/12/31天數的(de)日期;浮點數 日期+小數時(shí)間
Cbyte(num):num<255 轉換爲字節
Csng(str):轉換爲單精度數值
Cdbl(str):轉換爲雙精度數值
Ccur(str):轉換爲現金格式
4.時(shí)間函數:
date:取系統當前日期
time:取系統當前時(shí)間
now:取系統當前時(shí)間及日期值 Datetime類型
timer:取當前時(shí)間距離零點秒值,計時(shí)器,可(kě)計算(suàn)時(shí)間差
DateAdd(間隔單位,間隔值,日期):推算(suàn)相鄰日期
DateDiff(間隔單位,日期一,日期二):計算(suàn)時(shí)間差 日期二-日期一
Datepart(間隔單位,日期):計算(suàn)日期的(de)間隔單位值
Dateserial(date):輸出日期值(按序列計算(suàn))
Timeserial(time):輸出時(shí)間值(按序列計算(suàn))
Dateva lue(datetime):取出字符串中日期值
Timeva lue(datetime):取出字符串中時(shí)間值
weekday(date):計算(suàn)星期幾
MonthName(date):輸出月(yuè)分(fēn)名
year(datetime):截取年份
month(datetime):截取月(yuè)份
day(datetime):截取日
hour(datetime):截取小時(shí)
minute(datetime):截取分(fēn)鐘(zhōng)
second(datetime):截取秒
5.其它函數:
Array(unit,..):動态生成數組
Asc(str):輸出字符串第一個(gè)字符的(de)ASCII碼
Chr(asc):轉換ASCII爲字符 Enter:Chr(13)&Chr(10)
Filter(數組名稱,關鍵字符串,[,包含][,比較方法]):
将字符串數組中含有關鍵字符串的(de)元素存成新的(de)數組(默認) [包含]爲false則取不包含的(de)元素
Join(ArrayName):将數組中元素連成字符串
Ubound(ArrayName[,維數]):取得(de)數組相應維數的(de)上界
Lbound(ArrayName[,維數]):取得(de)數組相應維數的(de)下(xià)界 一般爲0
Randmize n:啓動随機數種子
Rnd(n):取得(de)随機數,n>0或爲空,取序列下(xià)一随機值,n<0,随機值相同,n=0,生産與上一随機值相同的(de)數
取介于A和(hé)B之間的(de)随機正數C,公式:C=Int((B-A+1)*Rnd+A) 條件(B>A)
子程序和(hé)自定義函數
Sub StrSubName Function StrFunName(arg[1],..)
子程序體 函數體
Exit Sub 中途跳出 Exit Function 中途跳出
End Sub StrFunName=Value 返回值
End Function
[call] StrSubName 引用(yòng)子程序 Var=StrFunName(arg[1],..) 引用(yòng)函數
子程序和(hé)自定義函數可(kě)以遞歸調用(yòng);
ASP六大(dà)對(duì)象常用(yòng)語句示範:
Response:
Response.write StrVar/"String":向網頁寫出參數值或字符串 等同于在Html标記中嵌入
Response.End:停止頁面編譯,并将已經編譯内容輸出到浏覽器
Response.Buffer=True|False:頁面編譯時(shí)是否使用(yòng)緩存的(de)設置,一般在頁面頭部設置
Response.Flush:強制輸出頁面已編譯部分(fēn)内容
Response.Clear:将緩沖區(qū)内的(de)數據清除
Response.Redirect URL:停止頁面編譯或輸出,轉載指定所需頁面
Response.IsClientConnected:返回True|False,檢測用(yòng)戶是否還(hái)處于連接狀态
Response.Charset(CharsetName):設置頁面編碼類型,即
Response.ContentType [= ContentType ]:設置頁面文件類型,同上
Response.Expires [= number]:設置頁面失效時(shí)間,單位分(fēn)鐘(zhōng)
Response.ExpiresAbsolute [= 2008-5-29 12:12:47 [time]]:設置頁面失效的(de)絕對(duì)時(shí)間
Response.Status = StatusDescription:設置頁面狀态描述
Request:
Request("PassStrName"):讀取網頁傳遞值,包括表單及以?PassStrName=value&PassStrName_n=value_n形式
Request[.collection|property|method](variable)
Request.querystring("PassStrName"):讀取Get方法傳遞的(de)表單值和(hé)?PassStrName=value
Request.QueryString(Varible)[(Index).Count]
Request.form("PassStrName"):讀取Post方法傳遞的(de)純表單域的(de)值
Request.Form(Parameter)[(Index).Count]
Request.ServerVaribles(Server Environment Variable):讀取客戶端系統環境變量,詳見參考
Request.BinaryRead(Count):讀取指定字節數的(de)傳送值
Request.TotalBytes:查詢體的(de)長(cháng)度,以字節爲單位,隻讀
注:同名表單如:CheckBox如有多(duō)項值,傳遞形式如右,StrName=value1,value2,...需要用(yòng)Split函數分(fēn)割各項值
Multiple的(de)Select表單與CheckBox類似,TextArea的(de)值可(kě)包含換行字符,用(yòng)Replace轉爲
,以滿足格式需要
Session:(用(yòng)戶全局變量)
Session("SesName")=value:存儲Session變量值,也(yě)可(kě)讀取該值
Session("SesName")=Empty:判斷Session值是否存在的(de)兩種方法
IsEmpty(Session("SesName"))=True|False:判斷Session值是否存在的(de)兩種方法
Session.TimeOut=num:設置Session變量的(de)存在時(shí)效,單位分(fēn)鐘(zhōng)
Session.Abandon:清除所有Session變量值
Session.SessionID:Session變量的(de)ID序列号,隻讀
Application:(應用(yòng)程序全局變量)
Application("AppName")=value:存儲Application變量值,也(yě)可(kě)讀取該值
Application("AppName")=Empty:判斷Application值是否存在的(de)兩種方法
IsEmpty(Application("AppName"))=True|False:判斷Application值是否存在的(de)兩種方法
Application.Lock:Application變量值鎖定,防止同時(shí)更改變量值
Application.UnLock:Application變量值解鎖,允許更改變量值
注:Session與Application變量都可(kě)以用(yòng)來(lái)存儲數組和(hé)系統對(duì)象,引用(yòng)方法是變量名相當于數組名而已,
但不能直接改變其值,需要借助臨時(shí)數組修改值後,再賦給Session與Application變量
Global.asa文件的(de)結構:
Server:
Server.MapPath("FileUrl"):映射文件名的(de)服務器站點絕對(duì)地址,Path=Server.MapPath(./)可(kě)以得(de)到虛拟目錄根路徑
Server.HtmlEncode("string"):轉換爲可(kě)以直接顯示帶Html格式的(de)字符串,如:<,>等
Server.URLEncode( "string"):轉換爲浏覽器地址編碼
set Var=Server.CreatObject("ObjName"):創建對(duì)象變量
Server.ScriptTimeout = NumSeconds:ASP程序頁面執行時(shí)限,以秒爲單位
Cookies: 存儲在用(yòng)戶本機的(de)臨時(shí)變量,每個(gè)Cookie的(de)最大(dà)字節4KB,最多(duō)可(kě)以有300個(gè)Cookie 1.2MB
Response.cookies("StrCookieName")=value:存儲Cookie變量值,也(yě)可(kě)讀取該值
Response.cookies("StrCookieName")="":判斷是否爲空
Response.cookies("StrCookieName").Expires=Date:變量有效期,以天爲單位,小于當前時(shí)間立即失效
Response.Cookies(Cookie[(key).Attribute]):标準語法
ObjectContext 控制ASP的(de)事務處理(lǐ)
ObjectContext.OnTransactionAbort:由放棄的(de)事務處理(lǐ)事件激發,在腳本完成處理(lǐ)後發生
ObjectContext.OnTransactionCommit:由成功的(de)事務處理(lǐ)事件激發,在腳本完成處理(lǐ)後發生
ObjectContext.SetAbort:顯式的(de)放棄一次事務處理(lǐ)
ObjectContext.SetComplete:覆蓋前面任何調用(yòng)ObjectContext.SetAbort方法的(de)調用(yòng)
Msgbox "string"/StrName:VBscript提示框
表單的(de)Onsubmit事件:在同一頁面寫入 Function FormName_onsubmit()..FormName_onsubmit=True/False..end Function,
頁面會在提交前先執行語句,并根據返回值判斷是否完成提交任務。
數據庫連接字符串舉例:
Access2000:
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("dbase\\liuyan.mdb")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("dbase\\liuyan.mdb")&";Password=admin"
Recordset.Open "數據表名", conn, 2, 2
SqlServer2000:
conn.Open "Provider=SQLOLEDB.1;User ID=sa;Password=admin;Initial Catalog=pubs;Data Source=server\\garlmrm"
conn.Open "provider=SQLOLEDB;data source=hyserver;uid=sa;pwd=;database=pubs"
Recordset.Open StrSQL, conn, 2, 2
Dbase:(?)
conn Open "Driver={Microsoft dBase Driver};SourceType=DB;SourceDB=" & Server.MapPath( "目錄名" )
Recordset.Open StrSQL, conn, 2, 2
FoxBase:
conn Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & Server.MapPath( "目錄名" )
Recordset.Open DBF文件名或Select語句, conn, 2, 2
conn Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=" & Server.MapPath( "DBC數據庫文件名" )
Recordset.Open DBF文件名或Select語句, conn, 2, 2
Excel:
conn Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.MapPath( "XLS文件名" )
Recordset.Open "Select * From ["&sheet&"$]",conn,2,2
注:使用(yòng)DBF、DBC、Excel數據庫,下(xià)面幾點要注意:Excel數據庫隻能讀取、增加記錄、修改記錄,但不能删除記錄;
DBF、DBC可(kě)以讀取記錄、增加記錄、删除記錄、修改記錄,但是在增加記錄時(shí),任何一個(gè)字段值都不能爲空,由此
可(kě)看出局限性很大(dà),所以盡可(kě)能地用(yòng)MDB或SQL數據庫。