ASP教程之办理毛病
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全毛病处置数据存储时,产生毛病的大概性老是存在的:平安性成绩,试图更新已被其他用户删除的纪录,诸云云类的成绩良多。不克不及包管统统都运转优秀,因而必需构建某种情势的毛病把持。
在第7章中,研讨了ASP页面中一样平常的毛病处置,但如今触及的是数据存储,以是必需思索利用分外的代码举行毛病处置。先看一下Errors汇合,再会商其怎样满意ASP3.0的毛病处置机制。
8.5.1Errors汇合
Errors汇合包括由单个ADO命令的实行而引发的每个毛病的Error工具。利用Errors汇合的缘故原由是因为在一个命令的实行过程当中,大概会引发多个毛病,OLEDB供应者必要供应一种体例关照客户方已有多个毛病产生。
关于Errors汇合有两个主要的中央必要注重:
·每次实行ADO命令,假如产生毛病,就清空毛病集,同时期之以新的毛病内容。固然,假如没有毛病产生,Errors汇合不会遭到影响。以是,即便ADO命令乐成实行,这个汇合中也大概含有毛病信息。
·OLEDB供应者大概会将包括信息的动静或告诫装进Errors汇合,毛病号为0。以是不克不及只反省汇合中的毛病号而假定毛病已产生。好比,利用ODBC供应者与SQLServer毗连,大概会失掉一个“毛病”,告诉缺省的数据库已改动了。
假如转头看一下本章入手下手讲到的工具模子,大概会发明Errors汇合只能由Connection工具会见。读者大概会以为奇异,假如不显式地创立一个Connection工具,怎样会见Errors汇合?Recordset工具有一个ActiveConnection属性,含有以后纪录集的Connection工具,这意味着能够如许失掉Errors汇合:
rsAuthors.ActiveConnection.Errors
假如想看产生的全体毛病,则必要遍历全部Errors汇合:
ForEacherrAuthorsInrsAuthors.ActiveConnection.Errors
Displayerror
Next
为了显现一些公道的毛病信息,必要切实晓得在Errors汇合中究竟有些甚么。
Error工具包括表8-5所示的属性:
表8-5Error工具的属性及申明
这意味着轮回历程如今能够酿成如许:
ForEacherrAuthorsInrsAuthors.ActiveConnection.Errors
Response.Write"Number:"&errAuthors.Number&_
"<BR>NativeError:"&errAuthors.NativeError&_
"<BR>SQLState:"&errAuthors.SQLState&_
"<BR>Source:"&errAuthors.Source&_
"<BR>Description:"&errAuthors.Description&_
"<P>"
Next
8.5.2ASP页面中的ADO毛病
在第4、7章,我们研讨了ASP的毛病,和怎样简便并完全地处置这些毛病。ASP3.0的一个新特性就是自界说毛病页面,但这关于ADO的确用途不年夜,由于剧本中的变量没法传进自界说的毛病页面。这就意味着我们没法检测Errors汇合。
面临如许的情形,必需供应本人的毛病处置。假如你利用JScript作为服务器端编程言语,那末你将具有新的try/catch特征,可是VBScript关于毛病的处置仍旧有很多不敷。今朝,最好的检测毛病的办法是利用OnErrorResumeNext语句,然后在大概会引发毛病的每行ADO代码后反省Errors汇合。就像如许:
<%
OnErrorResumeNext
DimrsAuthors
DimstrSQL
SetrsAuthors=Server.CreateObject("ADODB.Recordset")
strSQL="SELECTMissingColumn1,MissingColumn2,au_lname,au_fname"&_
"FROMauthors"
rsAuthors.OpenstrSQL,strConn,adOpenDynamic,adLockOptimistic,adCmdText
IfCheckForErrors(rsAuthors.ActiveConnection)=FalseThen
WhileNotrsAuthors.EOF
Response.WritersAuthors("au_lname")&","&_
rsAuthors("au_fname")&"<BR>"
rsAuthors.MoveNext
Wend
EndIf
rsAuthors.Close
SetrsAuthors=Nothing
%>
这里可以使用CheckForErrors子程序来检测是不是有毛病产生:
FunctionCheckForErrors(objConn)
DimobjErrorErrorobject
Errorsmeansthecountwillbegreaterthan0
IfobjConn.Errors.Count>0Then
Loopthroughtheerrors
ForeachobjErrorinobjConn.Errors
Eorroswithnumber0areinformational
IfobjError.number0then
Response.Write"<TABLEBORDER=1>"&_
"<TR><TD>ErrorProperty</TD><TD>Contents</TD>"&_
"</TR><TR><TD>Number</TD><TD>"&objError.Number&_
"</TD></TR><TR><TD>NativeError</TD><TD>"&_
objError.NativeError&"</TD></TR>"&_
"<TR><TD>SQLState</TD><TD>"&objError.SQLState&_
"</TD></TR><TR><TD>Source</TD><TD>"&_
objError.Source&"</TD></TR>"&_
"<TR><TD>Description</TD><TD>"&_
objError.Description&"</TD></TR></TABLE><P>"
CheckForErrors=True
EndIf
Next
Else
CheckForErrors=False
EndIf
EndFunction
%>
这个程序检测是不是有毛病,假如有,则为每个毛病创立一个表格,并给出了如-11所示的了局。
这并非一个手艺含量较高的办理计划,但的确是用VBScript所能做到的最好的办理计划。真实的不敷是必需本人检测毛病。
8.6小结
如今,应当扩大基本常识,研讨Command工具,了解怎样利用一些初级特征往改善功能和保护ASP页面。
ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
页:
[1]