ASP学习手记

ASP

1.连接SQL Server数据库

<!--#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和数据库中使用转义字符

有些字符不转义,显示时候会出错
 

HTMLASPSQL查询
   FormatInSql = replace(tmpStr,"<","&lt;")      
   FormatInSql = replace(tmpStr,">","&gt;")      
   FormatInSql = replace(tmpStr,chr(13),"<br/>")
   FormatInSql = replace(tmpStr," ","&nbsp;")    
   FormatInSql = replace(tmpStr,"'","&apos;")    
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

<返回>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值