六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

ASP中查錯之案例(尤其對入門者有幫助)!賴皮,昨天的出錯因素找到了,不是你所說的,你不應(yīng)該吃晚飯的...

[摘要]ASP中查錯之實例有這樣一個程序,是對Application集合中的元素進行活動的添加與刪除,程序如下:<%@ LANGUAGE=VBSCRIPT %><HTML><HEAD><TITLE>The Application Object</TIT...

ASP中查錯之實例
有這樣一個程序,是對Application集合中的元素進行活動的添加與刪除,程序如下:
<%@ LANGUAGE=VBSCRIPT %>
<HTML>
<HEAD>
<TITLE>The Application Object</TITLE>
<STYLE TYPE="text/css">
BODY {font-family:Tahoma,Arial,sans-serif; font-size:10pt}
INPUT {font-family:Tahoma,Arial,sans-serif; font-size:9pt}
.heading {font-family:Tahoma,Arial,sans-serif; font-size:14pt; font-weight:bold}
.subhead {font-family:Tahoma,Arial,sans-serif; font-size:12pt; font-weight:bold; padding-bottom:5px}
.cite {font-family:Tahoma,Arial,sans-serif; font-size:8pt}
</STYLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SPAN CLASS="heading">The ASP Application Object</SPAN><HR>
<!--------------------------------------------------------------------------->

<% 'look for a command sent from the FORM section buttons
If Len(Request.Form("cmdAdd")) Then                            ' 利用是否長度為0來判斷
   strVarName = Request.Form("txtVarName")
   strVarValue = Request.Form("txtVarValue")
   Application.Lock
   Application(strVarName) = strVarValue                        ' 此處報錯
   Application.Unlock
End If
If Len(Request.Form("cmdRemoveThis")) Then
   strToRemove = Request.Form("lstRemove")
   Application.Lock
   Application.Contents.Remove(strToRemove)
   Application.Unlock
End If
If Len(Request.Form("cmdRemoveAll")) Then
   Application.Lock
   Application.Contents.RemoveAll
   Application.Unlock
End If
%>

<P><DIV CLASS="subhead">The Application.Contents Collection</DIV>
<%
For Each objItem in Application.Contents
   If IsObject(Application.Contents(objItem)) Then
      Response.Write "Object reference: '" & objItem & "'<BR>"
   ElseIf IsArray(Application.Contents(objItem)) Then
      Response.Write "Array: '" & objItem & "' contents are:<BR>"
      varArray = Application.Contents(objItem)
      'note: the following only works with a one-dimensional array
      For intLoop = 0 To UBound(varArray)
         Response.Write "  Index(" & intLoop & ") = " & varArray(intLoop) & "<BR>"
      Next
   Else
      Response.Write "Variable: '" & objItem & "' = " _
                     & Application.Contents(objItem) & "<BR>"
   End If
Next
%>
<P><DIV CLASS="subhead">The Application.StaticObjects Collection</DIV>
<%
For Each objItem in Application.StaticObjects
   If IsObject(Application.StaticObjects(objItem)) Then
      Response.Write "<OBJECT> element: ID='" & objItem & "'<BR>"
   End if
Next
%>

<!-- collect values to execute Application methods with -->
<FORM ACTION="<% = Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST">    ' 利用Request.ServerVariables("SCRIPT_NAME")將表單提交給自身

<P><DIV CLASS="subhead">Add a value to the Application Object</DIV>
<INPUT TYPE="SUBMIT" NAME="cmdAdd" VALUE="   ">
  Application("
<INPUT TYPE="TEXT" NAME="txtVarName" SIZE="15" VALUE="My_New_Value">
") = "
<INPUT TYPE="TEXT" NAME="txtVarValue" SIZE="20" VALUE="Testing, testing ...">
"<P>

<P><DIV CLASS="subhead">Remove a value from the Application Object</DIV>
<INPUT TYPE="SUBMIT" NAME="cmdRemoveThis" VALUE="   ">
  Application.Contents.Remove("
<SELECT NAME="lstRemove" SIZE="1">
<%
For Each objItem in Application.Contents
   Response.Write "<OPTION>" & objItem & "</OPTION>"
Next
%>
</SELECT>")<BR>
<INPUT TYPE="SUBMIT" NAME="cmdRemoveAll" VALUE="   ">
  Application.Contents.RemoveAll

</FORM>

<P><DIV CLASS="subhead">Other Application Methods</DIV>
Application.Lock<BR>
Application.Unlock<P>

<!--------------------------------------------------------------------------->
<HR><SPAN CLASS="cite">©1999 <A CLASS="cite" >Wrox Press</A> -
<A CLASS="cite" >Professional ASP 3.0</A> (ISBN: 1-861002-61-0)</SPAN>
</BODY>
</HTML>

該程序的報錯信息如下:
技術(shù)信息(適用于支持人員)
·    錯誤類型:
應(yīng)用程序?qū)ο? ASP 0102 (0x80004005)
函數(shù)需要字符串輸入。
/Chapter03/application/show_application.asp, 第 22 行
·    瀏覽器類型:
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; COM+ 1.0.2204)
·    頁:
POST 98 bytes to /Chapter03/application/show_application.asp
·    POST 數(shù)據(jù):
cmdAdd=%A0%A0%
·    A0&txtVarName=My_New_Value&txtVarValue=Testing%2C+testing+...&lstRemove=My_New_Value
·    時間:
2001年2月16日, 9:42:28
賴皮曾指出Application(strVarName) = strVarValue應(yīng)為Application("strVarName") = strVarValue,雖然這樣做可以通過,但于程序的原意不符,程序要做的是通過Request.Form集合來獲取。而且既然是wrox的例題,應(yīng)該不太會出什么問題。
    步驟1:在報錯的上一行加入Response.Write("AAA"),目的是檢驗If … Then語句是否起作用,結(jié)果發(fā)現(xiàn)If … Then語句起作用的。
    步驟2:將出錯的一句注釋掉,并將Response.Write("AAA")改為
        Response.Write "strVarName = " & strVarName & "<BR>"
        Response.Write "strVarValue = " & strVarValue
    結(jié)果為:strVarName =
strVarValue = Testing, testing ...
    為什么會strVarName沒有值,而strVarValue卻有值呢?同樣都是Text輸入框,卻會有不同的結(jié)果。反復(fù)觀察后,發(fā)現(xiàn)Submit的值為"    ",即為三個空格,是否會由空格引起的呢?
    步驟3:遍歷Request.Form集合,將兩句Response.Write跟蹤變量語句改為
    For Each strName in Request.Form
        Response.Write strName & " = " & Request.Form(strName) & "<BR>"
    Next
    結(jié)果為:
    cmdAdd = 牋?txtVarName=My_New_Value
txtVarValue = Testing, testing ...
lstRemove = My_New_Value
果然是由于空格造成的亂碼,可這源程序是例題,不應(yīng)該有錯呀。想到wrox用的是英文Windows 2000,我用的是中文,那么應(yīng)該是由雙字節(jié)的關(guān)系,就應(yīng)該修改CODEPAGE。
而我忘記了中文CODEPAGE的代碼,在ASP 3.0高級編程中,曾寫過日文的CODEPAGE為932,日文也應(yīng)該是雙字節(jié)的。所以將源程序的第一行改為:
<%@ LANGUAGE="VBSCRIPT" CODEPAGE="932" %>
程序通過!

這里想向初學(xué)者提出的是,注意Response.Write和For … Each遍歷來跟蹤變量,找出錯誤的原因,注意雙字節(jié)對程序的影響,還有本文中If … Then中的判斷條件的方法。



主站蜘蛛池模板: 一区福利视频 | 青青青爽线在线视频观看 | 一级成人a做片免费 | 天美传媒影视在线网址 | 欧美影院在线观看在线观看看 | 欧美综合色区 | 羞羞答答免费人成黄页在线观看国产 | 日本视频免费 | 欧美视频高清 | 亚洲视频日韩视频 | 日本在线视频网 | 青青国产在线视频 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片16 | 欧美性黑人极品hd网站 | 青春草在线观看精品免费视频 | 午夜视频网| 色噜噜狠狠色综合中文字幕 | 色婷婷久久综合中文久久一本 | 亚洲国产成人资源在线桃色 | 香港毛片免费看 | 伊人久久大香线蕉综合影 | 日日摸日日碰夜夜爽97纠 | 色婷婷久久综合中文久久一本 | 亚洲午夜在线观看 | 一级欧美在线的视频 | 色综合久久98天天综合 | 青草草在线观看免费视频 | 青娱乐91视频 | 涩涩涩涩涩| 日朝欧美亚洲精品 | 欧美一区2区三区4区贰佰公司 | 青草网址| 在线观看亚洲精品专区 | 青青草国产免费久久久下载 | 天天在线干 | 亚洲国产高清在线精品一区 | 偷拍区自拍区 | 欧美特黄一免在线观看 | 欧美性活一级视频 | 特级淫片国产免费高清视频 | 人人噜人人爽 |