马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,编程|初级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工具的属性及申明
属性
说明
Number
ADO毛病号
NativeError
从数据供应者取得的毛病号
SQLState
毗连到SQL数据库时,5位的SQL形态代码
Source
引发毛病的工具
Description
毛病申明文本
这意味着轮回历程如今能够酿成如许:
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&"<</p>[1][2][3]下一页
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们) |