ASP |
<!--#include file="adovbs.inc" -->
Dim ConnStr
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName = "translate" '數據庫名
SqlUsername = "WebCVO" '用戶名
SqlPassword = "webcvo" '用戶密碼
SqlLocalName = "192.168.105.204" '連接名(本地用local,外地用IP)
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
<返回>
2.連接Access數據庫
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("aspfree.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn
<返回>
3.使用系統DSN連接數據庫
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=test;"
<返回>
4.使用數據庫操作
<%
exec="delete from tbl_Privileges where PrivilegeGUID="+cstr(ParaID)
conn.Execute(exec)
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select top 10 * from japanese"
rs.Open sql,conn,adopenStatic
while not(rs.eof)
%><%=rs("word")%>
<%rs.movenext
wend
rs.Close()
Set rs = nothing
%>
<返回>
5.使用數據庫帶返回值的存儲過程
<% Set Comm=server.CreateObject("ADODB.Command") Set Comm.ActiveConnection=conn Comm.CommandType=adCmdStoredProc Comm.CommandText="ProductsInfo" '存儲過程名稱 Comm.Parameters.Append Comm.CreateParameter("returncode",adInteger,adParamReturnValue) Comm.Parameters.Append Comm.CreateParameter("word",adVarChar,adParamInput,30,"愛情") '輸入參數 Comm.Parameters.Append Comm.CreateParameter("ID",adinteger,adParamInput,4,45) Comm.Parameters.Append Comm.CreateParameter("mean1",adVarChar,adParamOutput,30) '輸出參數 Comm.Execute '調用執行存儲過程。 rs=Comm.parameters("mean1").value '返回參數 %><%=rs%> <% Set rs = nothing Set Comm.ActiveConnection = nothing Set Comm = nothing %> |
adEmpty adTinyInt adSmallInt adInteger adBigInt adUnsignedTinyInt adUnsignedSmallInt adUnsignedInt adUnsignedBigInt adSingle adDouble adCurrency adDecimal adNumeric adBoolean adError adUserDefined adVariant adGUID |
adDATE adDBDate adDBTime adDBTimeStamp adBSTR adChar adVarChar adLongVarChar adWChar adVarWChar adLongVarWChar adBinary adVarBinary adLongVarBinary adChapter adPropVariant adIDispatch adIUnknown |
6.使用數據庫帶返回記錄集的存儲過程
<%
Set Comm=server.CreateObject("ADODB.Command")
Set Comm.ActiveConnection=conn
Comm.CommandType=adCmdStoredProc
Comm.CommandText="SearchWord" '存儲過程名稱
Comm.Parameters.Append Comm.CreateParameter("returncode",adInteger,adParamReturnValue)
Comm.Parameters.Append Comm.CreateParameter("word",adVarChar,adParamInput,30,"私") '輸入參數
Set Rs = Comm.Execute() '調用執行存儲過程。
While Not rs.eof
%><%=rs("mean1")%><br>
<%rs.movenext
wend
Set rs = nothing
Set Comm.ActiveConnection = nothing
Set Comm = nothing
%>
<返回>
7.用split分割字符串
str = "ftp://username:password@server"
aryReturn = Split(str,":")
If UBound(aryReturn)<>-1 then
For i = LBound(aryReturn) To UBound(aryReturn)
aryReturn(i)
Next
End If
<返回>
8.vb和數據庫中使用轉義字符
有些字符不轉義,顯示時候會出錯
HTML | ASP | SQL查詢 |
FormatInSql = replace(tmpStr,"<","<") FormatInSql = replace(tmpStr,">",">") FormatInSql = replace(tmpStr,chr(13),"<br/>") FormatInSql = replace(tmpStr," "," ") FormatInSql = replace(tmpStr,"'","'") FormatInSql = replace(tmpStr,chr(34),"""") |
str= " id=""20"" " reString=chr(13)+chr(10) str=replace(str,reString,"") |
CammandParaName=replace(CammandParaName,"'","''") |
<返回>
9.如何強制要求VB聲明變量
在asp文件頭部用Option Explicit
<返回>
10.如何處理不用的對象
當使用完對象後,首先使用Close方法來釋放對象所佔用的系統資源;然後設置對象值爲“nothing”來釋放對象佔用的內存,否則會因爲對象太多導致WEB服務站點運行效率降低乃至崩潰,相應語句如下:
<%
對象.close
set對象= nothing
%>
<返回>
11.如何設定緩衝
(1)設定緩衝
Response.Buffer = True
在結尾寫:Response.Flush
(2)不允許用緩衝
<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT="5">
<TITLE> 你的標題 </TITLE>
</HEAD>
<BODY>
你的頁面的其它部分。。。。。
</BODY>
<HEAD>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>
</HTML>
HTM網頁
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">
ASP網頁
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"|
response.addHeader "pragma" , "no-cache"
response.addHeader "cache-control" , "private"
PHP網頁
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
<返回>
12.設定Session超時時間
這麼寫:Session.Timeout=60 '設定超時時間爲60分鐘
<返回>
13.獲得訪問者IP和瀏覽器類型等信息
本機ip<%=request.servervariables("remote_addr")%>
服務器名<%=Request.ServerVariables("SERVER_NAME")%>
服務器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
服務器端口<%=Request.ServerVariables("SERVER_PORT")%>
服務器時間<%=now%>
IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
腳本超時時間<%=Server.ScriptTimeout%>
本文件路徑<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服務器CPU數量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服務器解譯引擎<%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>
服務器操作系統<%=Request.ServerVariables("OS")%>
檢查來訪者是否用了代理<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
response.write "<font color=#FF0000>您通過了代理服務器,"& _"真實的IP爲"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if%>
<返回>
14.將query string從一個asp文件傳送到另一個
前者文件加入下句:
Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))
<返回>
15.加密腳本
可以去下載一個微軟的Windows Script Encoder(http://www.wrclub.net/down.aspx?id=223),它可以對asp的腳本和客戶端javascript/vbscript腳本進行加密。。。不過客戶端加密後,只有ie5才能執行,服務器端腳本加密後,只有服務器上安裝有script engine 5(裝一個ie5就有了)才能執行。
<返回>
16.獲得CPU信息
<%
Set objShell = CreateObject("WScript.Shell")
Set objEnv = objShell.Environment("SYSTEM")
Response.Write "<H4>Number of Processors: " & objEnv("NUMBER_OF_PROCESSORS") & "</H4>"
%>
<返回>
17.在ASP中讀取註冊表的信息
通過 Windows Scripting object 的 Regread 方法,可以從註冊表中讀取信息。
下面的例子演示瞭如何得到 common files 的路徑:
<%
Dim strPath
strPath = "HKLMSOFTWAREMICROSOFTWINDOWSCURRENTVERSIONCOMMONFILESDIR"
Set objShell = CreateObject("WScript.Shell")
Response.Write "<b>Registry value(Common files dir):</b> " & objShell.RegRead(strPath)
%>
<返回>
18.取得所有的Session變量
在程序調試中,有時候需要知道有多少Session變量在使用,她們的值如何?由於Session對象提供一個稱爲Contents的集合(Collection),我們可以通過For...Each循環來達到目標:
Dim strName, iLoop
For Each strName in Session.Contents
Response.Write strName & " - " & Session.Contents(strName)& "<BR>"
Next
<返回>
19.定義數據庫連接的一些常量
Const adOpenForwardOnly = 0 '遊標只向前瀏覽記錄,不支持分頁、Recordset、BookMark
Const adOpenKeyset = 1 '鍵集遊標,其他用戶對記錄說做的修改將反映到記錄集中,但其他用戶增加或刪除記錄不會反映到記錄集中。支持分頁、Recordset、BookMark
Const adOpenDynamic = 2 '動態遊標功能最強,但耗資源也最多。用戶對記錄說做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽(ACCESS不支持)。
Const adOpenStatic = 3 '靜態遊標,只是數據的一個快照,用戶對記錄說做的修改,增加或刪除記錄都不會反映到記錄集中。支持向前或向後移動
Const adLockReadOnly = 1 '鎖定類型,默認的,只讀,不能作任何修改
Const adLockPessimistic = 2 '當編輯時立即鎖定記錄,最安全的方式
Const adLockOptimistic = 3 '只有在調用Update方法時才鎖定記錄集,而在此前的其他操作仍可對當前記錄進行更改、插入和刪除等
Const adLockBatchOptimistic = 4 '當編輯時記錄不會被鎖定,而更改、插入和刪除是在批處理方式下完成的
Const adCmdText = &H0001
Const adCmdTable = &H0002
<返回>
20.定義數據庫的字段的初始值
在Default中用(newid()) (getdate())
<返回>
21.修改contentType並下載gif等格式
<%
function dl(f,n)
on error resume next
set s=CreateObject("Adodb.Stream")
S.Mode=3
S.Type=1
S.Open
s.LoadFromFile(server.mappath(f))
if err.number>0 then
response.write err.number & ":" & err.description
else
response.contentType="application/x-gzip"
response.addheader "Content-Disposition:","attachment; filename=" & n
response.binarywrite(s.Read(s.size))
end if
end function
call dl("012922501.gif","t1.gif")
%>
<返回>
22.RecordSet的基本屬性和方法
rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數據表第一行
rs.movelast 將記錄指針移到數據表最後一行
rs.absoluteposition=N 將記錄指針移到數據表第N行
rs.absolutepage=N 將記錄指針移到第N頁的第一行
rs.pagesize=N 設置每頁爲N條記錄
rs.pagecount 根據 pagesize 的設置返回總頁數
rs.recordcount 返回記錄總數
rs.bof 返回記錄指針是否超出數據表首端,true表示是,false爲否
rs.eof 返回記錄指針是否超出數據表末端,true表示是,false爲否
rs.delete 刪除當前記錄,但記錄指針不會向下移動
rs.addnew 添加記錄到數據表末端
rs.update 更新數據表記錄
<返回>
23.獲得查詢獲得的表的各個字段的名字
For i=0 to rs.fields.count-1
response.write " "&rs(i).Name&" "
Next
'取字段內容
rs.movefirst
while not rs.eof
For i=0 to rs.Fields.count-1
response.write(rs(i))
Next
rs.MoveNext
wend
<返回>