人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統(tǒng)下載站 > 技術開發(fā)教程 > 詳細頁面

提高瀏覽器的調試能力

提高瀏覽器的調試能力

更新時間:2021-04-09 文章作者:未知 信息來源:網絡 閱讀次數(shù):

FrontPage 2000和 Visual IntDev 6.0是微軟公司提供的開發(fā) Web工程的有力工具,它們能大大提高程序員的工作效率。我們可以用 FrontPage 2000設計制作網頁界面,用 Visual IntDev 6.0給網頁添加 VBScript或 Java Script腳本程序,以及在網頁中嵌入 COM組件,使之成為功能強大的 ASP頁面。

問題的提出

通常我們可以用瀏覽器(最好用 IE 5.0以上版本)調試頁面,以排除程序中的錯誤。不過,在開發(fā)實踐中,筆者發(fā)現(xiàn)瀏覽器對 ASP頁面的調試能力不太理想,尤其是當 ASP頁面中含有對數(shù)據(jù)庫操作的腳本代碼時,效果更不理想。

例如,某個程序中含有如下代碼段:

<%

strConnString =“ Provider=SQLOLEDB.1;Password=mypassword;”&“ Persist Security Info=True;User ID=myuid;”&“ Initial Catalog=mydbname;”&“ Data Source=myserver;Connect Timeout=15”

Set conn1 = Server.CreateObject(“ ADODB.Connection” )

Conn1.Open strConnString

q=“ insert into students (xm,xh) values(‘張三’ ,‘ S001’ )”

conn1.Execute (q)

% >

此段代碼首先建立起連接對象 conn1與 mydbname數(shù)據(jù)庫的連接,然后向學生表( students)中插入姓名( xm)為“張三”、學號( xh)為“ S001”的記錄。假如學生表中學號為“主鍵”,且表中已有學號為“ S001”的記錄存在,那么這一插入操作必定會因主鍵沖突而出錯。但是,當我們用瀏覽器瀏覽該頁面時,瀏覽器只會提示該頁面的第 8行(即 conn1.Execute (q)行)出錯,并不會告訴我們究竟具體發(fā)生了什么錯誤。因此,在大部分情況下,我們不得不再借助于 Visual IntDev 6.0內嵌的查詢分析工具( Query)或 SQL Server的查詢分析器等工具來做進一步的調試,不過,這樣做往往比較費時、費力。所以,如何直接提高瀏覽器的調試能力,就成為解決問題的關鍵。

問題的解決

為提高瀏覽器的調試能力,我們可以利用它的輸出功能,在 ASP頁面中插入一段捕獲 ADO錯誤的代碼,這樣就可以讓瀏覽器清楚地告訴我們究竟發(fā)生了什么。修改后代碼如下:

<%

strConnString =“ Provider=SQLOLEDB.1;Password=mypassword;”&“ Persist Security Info=True;User ID=myuid;”&“ Initial Catalog=mydbname;”&“ Data Source=myserver;Connect Timeout=15”

Set conn1 = Server.CreateObject(“ ADODB.Connection” )

Conn1.Open strConnString

’屏蔽瀏覽器的錯誤提示功能

on error resume next

q=“ insert into students(xm,xh) values(‘張三’ ,‘ S001’ )”

conn1.Execute (q)

’枚舉連接對象 conn1的錯誤集合并顯示每個 Error對象的屬性

For Each errLoop In conn1.Errors

strError =“ Error#”& errLoop.Number& vbCr&“”& errLoop.Description& vbCr&“ (Source:”& errLoop.Source&“ )”& vbCr&“ (SQL State:”& errLoop.SQLState&“ )”& vbCr&“ (NativeError:”& errLoop.NativeError&“ )”& vbCr

If errLoop.HelpFile =“” Then

strError = strError&“ No help file available”& vbCr& vbCr

Else

strError = strError&“ (HelpFile:”& errLoop.HelpFile&“ )”& vbCr&“ (HelpContext:”& errLoop.HelpContext&“ )”& vbCr& vbCr

End If

’輸出錯誤信息

Response.Write strError

Next

% >

上述 For~ Next循環(huán)中的代碼捕獲 ADO連接對象 conn1的 Errors集合中的所有錯誤對象( Error對象)。這些 Error對象的屬性包括:

●Number屬性表示用于唯一標識 Error對象的數(shù)字;

●Description屬性表示與 Error對象相關聯(lián)的說明性字符串;

●SQLState屬性表示給定 Error對象的 SQL狀態(tài);

●NativeError屬性表示給定 Error對象或特定提供者的錯誤代碼;

●Source屬性表示產生錯誤的原始對象或應用程序的名稱。

瀏覽器把這些屬性顯示在窗口中,這樣我們就能清楚地知道究竟發(fā)生了什么錯誤。

在 Error對象的諸多屬性中, Description屬性包含錯誤說明信息,查看這一屬性,基本上可以知道錯誤的原因,為簡化代碼,也可以只查看這一屬性。

此外,通過捕獲 ADO錯誤,還可以向用戶給出有用的提示信息。例如,當用戶錄入重復的學號時,我們可以給他合適的提示。代碼如下:

<%

’屏蔽瀏覽器的錯誤提示功能

on error resume next

strConnString =“ Provider=SQLOLEDB.1;Password=mypassword;”&“ Persist Security Info=True;User ID=myuid;”&“ Initial Catalog=mydbname;”&“ Data Source=myserver;Connect Timeout=15”

Set conn1 = Server.CreateObject(“ ADODB.Connection” )

Conn1.Open strConnString

’檢查數(shù)據(jù)庫連接,出錯則給出提示

For Each errLoop In conn1.Errors

If errLoop.NativeError=6 then% >

<script language=vbscript>

<!--

alert "數(shù)據(jù)庫可能已停止運行,請和數(shù)據(jù)庫管理員聯(lián)系!"

//-->

</script>

<% End If

If errLoop.NativeError=0 then% >

<script language=vbscript>

<!--

alert "數(shù)據(jù)庫連接有問題,請和web站點管理員聯(lián)系!"

window.history.back 1

//-->

</script>

<% End If

Next

q=“ insert into students(xm,xh) values(‘張三’ ,‘ S001’ )”

conn1.Execute (q)

’判斷是否存在主鍵沖突,存在則給出警告

For Each errLoop In cnn1.Errors

If errLoop.NativeError=2627 then% >

<script language=vbscript>

<!--

alert "學好已經存在,請重新輸入!"

//-->

</script>

<% End If

Next

% >

這樣,就可以通過瀏覽器提示用戶,其操作有什么問題,以利于用戶改正。其中錯誤號表示:

●NativeError=6的錯誤是由 Net Library返回的錯誤號,錯誤來自于底層的網絡軟件;

●NativeError=0的錯誤是由驅動程序返回的錯誤號,錯誤來自于數(shù)據(jù)庫驅動程序(如 SQL Server Driver);

●NativeError=2627的錯誤是由 SQL Server返回的錯誤號,錯誤來自于數(shù)據(jù)源。

關于 SQL Server返回的錯誤信息,如果想獲得更詳細的信息,請查看 SQL Server 7.0 sysmessages系統(tǒng)表( select error,description from sysmessages)。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 枣阳市| 临桂县| 应用必备| 屯门区| 洛阳市| 德江县| 布尔津县| 依兰县| 巴林右旗| 友谊县| 教育| 临高县| 巴彦县| 临武县| 宣武区| 怀宁县| 柯坪县| 嵊泗县| 华坪县| 社旗县| 金阳县| 左云县| 罗源县| 南宁市| 定结县| 华亭县| 天气| 牡丹江市| 应城市| 太和县| 高淳县| 若羌县| 务川| 中卫市| 开远市| 河东区| 丰原市| 简阳市| 仙游县| 白玉县| 陵水|