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
<返回>