vbs 基本语法
?call produce(argument1)
Dim bian1,biang2
const chang1,chang2
erase
erase array
exit
exit do
exit for
exit function
exit sub
option explicit 強(qiáng)制詳細(xì)定義變量
select case
VBscript常用函數(shù):
1.數(shù)值型函數(shù):
abs(num): 返回絕對值
sgn(num): num>0 1; num=0 0; num<0 -1;判斷數(shù)值正負(fù)
hex(num): 返回十六進(jìn)制值 直接表示:&Hxx 最大8位
oct(num): 返回八進(jìn)制值 直接表示:&Oxx 最大8位
sqr(num): 返回平方根 num>0
int(num): 取整 int(99.8)=99;int(13.2)=13;int(-13.9)=-14; int(-13.2)=-14;int(-99.2)=-100 ;
??????????? 當(dāng)num為整數(shù)時(shí),截尾取整,當(dāng)num為負(fù)數(shù)時(shí),加滿去整。
fix(num): 取整 fix(99.8)=99; fix(-99.2)=-99 fix為截尾取整。
round(num,n): 四舍五入(小于等于5舍,大于5入)取小數(shù)位 round(3.14159,3)=3.142 ;(須大于5才入)round(3.25,1)=3.2
????????????
log(num): 取以e為底的對數(shù) num>0
exp(n): 取e的n次冪 通常用 num^n
sin(num): 三角函數(shù),以弧度為值計(jì)算 (角度*Pai)/180=弧度 con(num); tan(num); atn(num)
2.字符串函數(shù):
len(str):計(jì)算字符串長度 中文字符長度也計(jì)為一!
mid(str,起始字符,[讀取長度]):截取字符串中間子字符串 ,起始字符從1開始。
left(str,nlen):從左邊起截取nlen長度子字符串
right(str,nlen):從右邊起截取nlen長度子字符串
Lcase(str):字符串轉(zhuǎn)成小寫
Ucase(str):字符串轉(zhuǎn)成大寫
trim(str):去除字符串兩端空格
Ltrim(str):去除字符串左側(cè)空格
Rtrim(str):去除字符串右側(cè)空格
replace(str,查找字符串,替代字符串,[起始字符,替代次數(shù),比較方法]):替換字符串
注:默認(rèn)值:起始字符 1;替代次數(shù) 不限;比較方法 區(qū)分大小寫(0)
InStr([起始字符,]str,查找字符串[,比較方法]):檢測是否包含子字符串 可選參數(shù)需同時(shí)選 返回起始位置
InStrRev(str,查找字符串[,起始字符][,比較方法]):反向檢測是否包含子字符串 返回起始位置
注:instrrev與instr的運(yùn)行結(jié)果是一樣的。
space(n):構(gòu)造n個(gè)空格的字符串
string(n,str):構(gòu)造由n個(gè)str第一個(gè)字符組成的字符串
StrReverse(str):反轉(zhuǎn)字符串
split(str,分割字符串[,次數(shù)][,比較方法]):以分割字符串為分割標(biāo)志將字符串轉(zhuǎn)為字符數(shù)組 可選參數(shù)需同時(shí)選
3.數(shù)據(jù)類型轉(zhuǎn)換函數(shù):
Cint(str):轉(zhuǎn)換為數(shù)字。str不能為日期格式。
Cstr(str):
Clng(str):轉(zhuǎn)換為長整型。
Cbool(num):num不為零 True;反之 False
Cdate(str):str可以為后面幾種格式:1.Am 12:00:00;2.正數(shù) 距離1899/12/31天數(shù)的日期;3.1980年9月3日 AM 12:30:2;4.1980/09/23 PM 2:23:32
Cbyte(num):num<255 轉(zhuǎn)換為字節(jié)
Csng(str):轉(zhuǎn)換為單精度數(shù)值
Cdbl(str):轉(zhuǎn)換為雙精度數(shù)值
Ccur(str):轉(zhuǎn)換為現(xiàn)金格式
4.時(shí)間函數(shù):
注意:參數(shù)date表示日期型數(shù)據(jù),參數(shù)time表示時(shí)間型數(shù)據(jù),參數(shù)datetime表示日期時(shí)間型數(shù)據(jù)。不同的參數(shù)不能隨便混用,有可能導(dǎo)致出錯(cuò)。
date:取系統(tǒng)當(dāng)前日期
time:取系統(tǒng)當(dāng)前時(shí)間
now:取系統(tǒng)當(dāng)前時(shí)間及日期值 Datetime類型
timer:取當(dāng)前時(shí)間距離零點(diǎn)秒值,計(jì)時(shí)器,可計(jì)算時(shí)間差
DateAdd(間隔單位,間隔值,日期):推算相鄰日期 。間隔單位為字符常量,"yyyy"表示年,"q"表示季,"m"表示月,"y","d","w"都表示日,"ww"表示周,"h","n","s"分別是時(shí),分,秒。
DateDiff(間隔單位,日期一,日期二):計(jì)算時(shí)間差 日期二-日期一
Datepart(間隔單位,日期):計(jì)算日期的間隔單位值
Dateserial(date):輸出日期值(按序列計(jì)算)
Timeserial(time):輸出時(shí)間值(按序列計(jì)算)
DateValue(datetime):取出字符串中日期值
Timevalue(datetime):取出字符串中時(shí)間值
weekday(date):計(jì)算星期幾
MonthName(date):輸出月分名
year(datetime):截取年份
month(datetime):截取月份
day(datetime):截取日
hour(datetime):截取小時(shí)
minute(datetime):截取分鐘
second(datetime):截取秒
5.其它函數(shù):
Array(unit,..):動態(tài)生成數(shù)組
Asc(str):輸出字符串第一個(gè)字符的ASCII碼
Chr(asc):轉(zhuǎn)換ASCII為字符 Enter:Chr(13)&Chr(10)
Filter(數(shù)組名稱,關(guān)鍵字符串,[,包含][,比較方法]):
將字符串?dāng)?shù)組中含有關(guān)鍵字符串的元素存成新的數(shù)組(默認(rèn)) [包含]為false則取不包含的元素
Join(ArrayName):將數(shù)組中元素連成字符串
Ubound(ArrayName[,維數(shù)]):取得數(shù)組相應(yīng)維數(shù)的上界
Lbound(ArrayName[,維數(shù)]):取得數(shù)組相應(yīng)維數(shù)的下界 一般為0
Randmize n:啟動隨機(jī)數(shù)種子
Rnd(n):取得隨機(jī)數(shù),n>0或?yàn)榭?#xff0c;取序列下一隨機(jī)值,n<0,隨機(jī)值相同,n=0,生產(chǎn)與上一隨機(jī)值相同的數(shù)
取介于A和B之間的隨機(jī)正數(shù)C,公式:C=Int((B-A+1)*Rnd+A) 條件(B>A)
子程序和自定義函數(shù)
Sub StrSubName Function StrFunName(arg[1],..)
子程序體 函數(shù)體
Exit Sub 中途跳出 Exit Function 中途跳出
End Sub StrFunName=Value 返回值
End Function
[call] StrSubName 引用子程序 Var=StrFunName(arg[1],..) 引用函數(shù)
子程序和自定義函數(shù)可以遞歸調(diào)用;
ASP六大對象常用語句示范:
Response:
Response.write StrVar/"String":向網(wǎng)頁寫出參數(shù)值或字符串 等同于在Html標(biāo)記中嵌入<%=StrVar/"String"%>
Response.End:停止頁面編譯,并將已經(jīng)編譯內(nèi)容輸出到瀏覽器
Response.Buffer=True&#124;False:頁面編譯時(shí)是否使用緩存的設(shè)置,一般在頁面頭部設(shè)置
Response.Flush:強(qiáng)制輸出頁面已編譯部分內(nèi)容
Response.Clear:將緩沖區(qū)內(nèi)的數(shù)據(jù)清除
Response.Redirect URL:停止頁面編譯或輸出,轉(zhuǎn)載指定所需頁面
Response.IsClientConnected:返回True&#124;False,檢測用戶是否還處于連接狀態(tài)
Response.Charset(CharsetName):設(shè)置頁面編碼類型,即<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
Response.ContentType [= ContentType ]:設(shè)置頁面文件類型,同上
Response.Expires [= number]:設(shè)置頁面失效時(shí)間,單位分鐘
Response.ExpiresAbsolute [= [date] [time]]:設(shè)置頁面失效的絕對時(shí)間
Response.Status = StatusDescription:設(shè)置頁面狀態(tài)描述
Request:
Request("PassStrName"):讀取網(wǎng)頁傳遞值,包括表單及以?PassStrName=value&PassStrName_n=value_n形式
Request[.collection&#124;property&#124;method](variable)
Request.querystring("PassStrName"):讀取Get方法傳遞的表單值和?PassStrName=value
Request.QueryString(Varible)[(Index).Count]
Request.form("PassStrName"):讀取Post方法傳遞的純表單域的值
Request.Form(Parameter)[(Index).Count]
Request.ServerVaribles(Server Environment Variable):讀取客戶端系統(tǒng)環(huán)境變量,詳見參考
Request.BinaryRead(Count):讀取指定字節(jié)數(shù)的傳送值
Request.TotalBytes:查詢體的長度,以字節(jié)為單位,只讀
注:同名表單如:CheckBox如有多項(xiàng)值,傳遞形式如右,StrName=value1,value2,...需要用Split函數(shù)分割各項(xiàng)值
Multiple的Select表單與CheckBox類似,TextArea的值可包含換行字符,用Replace轉(zhuǎn)為<br>,以滿足格式需要
Session:(用戶全局變量)
Session("SesName")=value:存儲Session變量值,也可讀取該值
Session("SesName")=Empty:判斷Session值是否存在的兩種方法
IsEmpty(Session("SesName"))=True&#124;False:判斷Session值是否存在的兩種方法
Session.TimeOut=num:設(shè)置Session變量的存在時(shí)效,單位分鐘
Session.Abandon:清除所有Session變量值
Session.SessionID:Session變量的ID序列號,只讀
Application:(應(yīng)用程序全局變量)
Application("AppName")=value:存儲Application變量值,也可讀取該值
Application("AppName")=Empty:判斷Application值是否存在的兩種方法
IsEmpty(Application("AppName"))=True&#124;False:判斷Application值是否存在的兩種方法
Application.Lock:Application變量值鎖定,防止同時(shí)更改變量值
Application.UnLock:Application變量值解鎖,允許更改變量值
注:Session與Application變量都可以用來存儲數(shù)組和系統(tǒng)對象,引用方法是變量名相當(dāng)于數(shù)組名而已,
但不能直接改變其值,需要借助臨時(shí)數(shù)組修改值后,再賦給Session與Application變量
Global.asa文件的結(jié)構(gòu):<% @language="VBscript"%>
<% Sub Application_OnStart ...End Sub
Sub Application_OnEnd ... End Sub
Sub Session_OnStart ...End Sub
Sub Session_OnEnd ... End Sub%>
Server:
Server.MapPath("FileUrl"):映射文件名的服務(wù)器站點(diǎn)絕對地址,Path=Server.MapPath(./)可以得到虛擬目錄根路徑
Server.HtmlEncode("string"):轉(zhuǎn)換為可以直接顯示帶Html格式的字符串,如:<,>等
Server.URLEncode( "string"):轉(zhuǎn)換為瀏覽器地址編碼
set Var=Server.CreatObject("ObjName"):創(chuàng)建對象變量
Server.ScriptTimeout = NumSeconds:ASP程序頁面執(zhí)行時(shí)限,以秒為單位
Cookies: 存儲在用戶本機(jī)的臨時(shí)變量,每個(gè)Cookie的最大字節(jié)4KB,最多可以有300個(gè)Cookie 1.2MB
Response.cookies("StrCookieName")=value:存儲Cookie變量值,也可讀取該值
Response.cookies("StrCookieName")="":判斷是否為空
Response.cookies("StrCookieName").Expires=Date:變量有效期,以天為單位,小于當(dāng)前時(shí)間立即失效
Response.Cookies(Cookie[(key).Attribute]):標(biāo)準(zhǔn)語法
ObjectContext 控制ASP的事務(wù)處理
ObjectContext.OnTransactionAbort:由放棄的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生
ObjectContext.OnTransactionCommit:由成功的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生
ObjectContext.SetAbort:顯式的放棄一次事務(wù)處理
ObjectContext.SetComplete:覆蓋前面任何調(diào)用ObjectContext.SetAbort方法的調(diào)用
Msgbox "string"/StrName:VBscript提示框
表單的Onsubmit事件:在同一頁面寫入 Function FormName_onsubmit()..FormName_onsubmit=True/False..end Function,
頁面會在提交前先執(zhí)行語句,并根據(jù)返回值判斷是否完成提交任務(wù)。
數(shù)據(jù)庫連接字符串舉例:
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 "數(shù)據(jù)表名", 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數(shù)據(jù)庫文件名" )
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
注:使用DBF、DBC、Excel數(shù)據(jù)庫,下面幾點(diǎn)要注意:Excel數(shù)據(jù)庫只能讀取、增加記錄、修改記錄,但不能刪除記錄;
DBF、DBC可以讀取記錄、增加記錄、刪除記錄、修改記錄,但是在增加記錄時(shí),任何一個(gè)字段值都不能為空,由此
可看出局限性很大,所以盡可能地用MDB或SQL數(shù)據(jù)庫。
?
SQL函數(shù)
SQL函數(shù)
????? 使用SQL函數(shù),您可以在一個(gè)SELECT語句的查詢當(dāng)中,直接計(jì)算數(shù)據(jù)庫資料的平
均值、總數(shù)、最小值、最大值、總和、標(biāo)準(zhǔn)差、變異數(shù)等統(tǒng)計(jì)。使用Recordset對象
時(shí),也可使用這些SQL函數(shù)。
SQL函數(shù)包括如下:
Avg函數(shù):計(jì)算查詢中某一特定字段資料的算術(shù)平均值。
Count函數(shù):計(jì)算符合查詢條件的記錄數(shù)。
Min, Max函數(shù):傳回指定字段之中符合查詢條件的第一條、最末條記錄的資料。
First, Last函數(shù):傳回指定字段之中符合查詢條件的最小值、最大值。
StDev函數(shù):計(jì)算指定字段之中符合查詢條件的標(biāo)準(zhǔn)差。
Sum函數(shù):計(jì)算指定字段之中符合查詢條件的資料總和。
Var,函數(shù):計(jì)算指定字段之中符合查詢條件的變異數(shù)估計(jì)值。
ADO如何使用SQL函數(shù)呢?
譬如ASP程式碼rs21.asp,在用戶端使用瀏覽器,瀏覽執(zhí)行的結(jié)果,顯示執(zhí)行SQL函數(shù)
的結(jié)果。
ASP程式碼rs21.asp如下:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver=
{Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Set rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT Avg(價(jià)格) As 平均 From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Avg: " & rs2("平均")
rs2.Close
SqlStr = "SELECT Count(價(jià)格) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Count(價(jià)格): " & rs2(0)
rs2.Close
SqlStr = "SELECT Count(*) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Count(*): " & rs2(0)
rs2.Close
SqlStr = "SELECT Sum(價(jià)格) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Sum: " & rs2(0)
rs2.Close
SqlStr = "SELECT Min(價(jià)格) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Min: " & rs2(0)
rs2.Close
SqlStr = "SELECT Max(價(jià)格) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Max: " & rs2(0)
rs2.Close
SqlStr = "SELECT First(價(jià)格) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>First(價(jià)格): " & rs2(0)
rs2.Close
SqlStr = "SELECT Last(價(jià)格) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Last(價(jià)格): " & rs2(0)
rs2.Close
SqlStr = "SELECT First(代號) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>First(代號): " & rs2(0)
rs2.Close
SqlStr = "SELECT Last(代號) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Last(代號): " & rs2(0)
rs2.Close
SqlStr = "SELECT StDev(價(jià)格) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>StDev: " & rs2(0)
rs2.Close
SqlStr = "SELECT Var(價(jià)格) From 產(chǎn)品"
rs2.Open SqlStr,conn1,1,1
Response.Write "<BR>Var: " & rs2(0)
rs2.Close
conn1.Close
%>
SQL函數(shù),詳細(xì)描述如下:
Avg函數(shù)
Avg函數(shù),計(jì)算查詢中某一特定字段資料的算術(shù)平均值。
????? 語法為Avg(運(yùn)算式)。運(yùn)算式,可為字段名稱、運(yùn)算式、或一個(gè)函數(shù),此函數(shù)可
以是一個(gè)內(nèi)部或使用者定義的,但不能為其它的SQL函數(shù)。
Avg函數(shù)在計(jì)算時(shí),不包含任何值為 Null 的資料。
Count函數(shù)
Count函數(shù),計(jì)算符合查詢條件的記錄條數(shù)。
????? 語法為Count (運(yùn)算式)。運(yùn)算式,可為字段名稱、*、多個(gè)字段名稱、運(yùn)算式、
或一個(gè)函數(shù),此函數(shù)可以是一個(gè)內(nèi)部或使用者定義的,但不能為其它的SQL函數(shù)。
Count 函數(shù)於計(jì)算時(shí),不包含任何值為 Null 的資料。
但是,Count(*) 則計(jì)算所有符合查詢條件的記錄條數(shù),包含那些Null的資料。
????? 如果Count(字段名稱) 的字段名稱為多個(gè)字段,將字段名稱之間使用 & 分隔。
多個(gè)字段當(dāng)中,至少有一個(gè)字段的值不為Null的情況下,Count函數(shù)才會計(jì)算為一條
記錄。如果多個(gè)字段都為Null,則不算是一條記錄。譬如:
SELECT Count(價(jià)格 & 代號) From 產(chǎn)品
First/Last函數(shù)
????? First函數(shù)、Last函數(shù),傳回指定字段之中符合查詢條件的第一條、最末條記錄
的資料。
????? 語法為First(運(yùn)算式) 和 Last(運(yùn)算式)。運(yùn)算式,可為字段名稱、運(yùn)算式、或
一個(gè)函數(shù),此函數(shù)可以是一個(gè)內(nèi)部或使用者定義的,但不能為其它的SQL函數(shù)。
Min/Max函數(shù)
????? Min函數(shù)、Max函數(shù),傳回指定字段之中符合查詢條件的最小值、最大值。
ado如何使用sql函數(shù)?
????? 語法為Min(運(yùn)算式) 和 Max(運(yùn)算式)。運(yùn)算式,可為字段名稱、運(yùn)算式、或一個(gè)
函數(shù),此函數(shù)可以是一個(gè)內(nèi)部或使用者定義的,但不能為其它的SQL函數(shù)。
StDev函數(shù)
StDev函數(shù),計(jì)算指定字段之中符合查詢條件的標(biāo)準(zhǔn)差。
????? 語法為StDev(運(yùn)算式)。運(yùn)算式,可為字段名稱、運(yùn)算式、或一個(gè)函數(shù),此函數(shù)
可以是一個(gè)內(nèi)部或使用者定義的,但不能為其它的SQL函數(shù)。
????? 如果符合查詢條件的記錄為兩個(gè)以下時(shí),StDev函數(shù)將傳回一個(gè)Null 值,該表示
不能計(jì)算標(biāo)準(zhǔn)差。
Sum函數(shù)
Sum函數(shù),計(jì)算指定字段之中符合查詢條件的資料總和。
????? 語法為Sum(運(yùn)算式)。運(yùn)算式,可為字段名稱、運(yùn)算式、或一個(gè)函數(shù),此函數(shù)可
以是一個(gè)內(nèi)部或使用者定義的,但不能為其它的SQL函數(shù)。
Sum函數(shù)可使用兩個(gè)字段資料運(yùn)算式,譬如計(jì)算產(chǎn)品的單價(jià)及數(shù)量字段的合計(jì):
SELECT Sum(單價(jià) * 數(shù)量) FROM 產(chǎn)品
Var函數(shù)
Var函數(shù),計(jì)算指定字段之中符合查詢條件的變異數(shù)估計(jì)值。
????? 語法為Var(運(yùn)算式)。運(yùn)算式,可為字段名稱、運(yùn)算式、或一個(gè)函數(shù),此函數(shù)可
以是一個(gè)內(nèi)部或使用者定義的,但不能為其它的SQL函數(shù)。
????? 如果符合查詢條件的記錄為兩個(gè)以下時(shí),Var函數(shù)將傳回一個(gè)Null 值,該表示不
能計(jì)算變異數(shù)。
?
?
總結(jié)
- 上一篇: randomly get passwd
- 下一篇: 首都师范大学计算机考研调剂,2018年首