ASP常见错误详解及解决方案小结-推荐第1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ASP常见错误详解及解决方案小结推荐第1/2页-发布:dxy字体:[增加减小]类型:转载ASP是非常简单的,以至于许多的开发者不会去思考错误处理。错误处理能够让你的应用程序更加合理。我看到过很多个用ASP编写的商业网站,大多数都忽略了错误处理。错误的类型。-有三种主要的错误类型:1.编译错误:这种错误出现一般都是代码的语法问题。因为编译错误而导致辞ASP停止运行。2.运行错误:这个错误是发生在你准备运行ASP时的。例如:如果你试图给一个变量赋值,但是却超出了该变量允许的范围。3.逻辑错误:逻辑错误是最难被发现的,这种错误经常是一种结构错误,电脑是发现不了的。这就需要我们彻头彻尾地检查我们的代码。因为编译错误一般是和逻辑错误一起发生的,一般都能显示出来,所以我们担心的就只是运行错误。它都终止ASP的运行,而且给用户丢下一堆很不友好的文字。那么我们要怎样处理运行错误呢?错误类型:ADODB.Field(0x800A0BCD)BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。原因:你在利用SQL查找数据库的记录时,查找结果为空,而且你没有对空记录的情况做出处理。解决:1如果你不相信查找结果为空,那你应该考虑你的SQL语句是否正确;2如果确实有空的情况,那你应该添加”ifrs.eofthen”或者”dowhilenotrs.eof”之类的语句,对eof的情况进行处理。错误类型:(0×80020009)发生意外。原因:也是在利用SQL查找数据库记录时,查找结果为空,而且你在后面的代码中调用了rs(“aa”)之类的记录解决:要么同上,加上rs.eof的判断和处理,要么就是你的SQL语句有误,导致记录查不出来,也就无法在后来使用rs(“aa”)的记录了。错误类型:ActiveServerPages,ASP0126(0×80004005)找不到包含文件‘xxx.asp'。原因:就如错误提示所说,不存在这个包含文件。解决:如果你确定有这个文件,那么就是你的路径写错了,比如说其实他相对于网站根目录的路径应该是inc/xxx.asp,那么include里面就应该写inc/xxx.asp,而不仅仅是xxx.asp。附:include的写法是:错误类型:MicrosoftOLEDBProviderforODBCDrivers(0×80004005)[Microsoft][ODBCMicrosoftAccessDriver]操作必须使用一个可更新的查询。原因:这个在XP服务器上非常常见,属于服务器的配置问题,或者说是用户的权限问题。解决:如果仅仅是在本机上调试出现的错误,则右键点击网站所在的文件夹,点击”共享和安全…”,在”安全”中点添加…,写入everyone,然后再使这个用户的权限为所有,即除了第一个外全部打勾,确定之后再刷新就可以用了。(注:如果找不到“安全”选项,则在任意一个文件夹下点击“工具”,然后是“文件夹选项”--“查看”,在“使用简单文件共享”一栏把勾去掉即可)错误类型:MicrosoftVBScript编译器错误(0x800A0401)语句未结束原因:语法错误。解决:按系统所提示的行来检查。如果提示的恰好是本页的最后一行,则很有可能是if语句忘记写”endif”啦,select语句忘记写”endselect”啦,总之是需要end的地方没有end,导致服务器找不到语句的结尾,只好在最后一行显示错误。错误类型:MicrosoftJETDatabaseEngine(0x80040E10)至少一个参数没有被指定值。原因:在写SQL语句的时候,我们经常会调用一些参数,很可能这些参数中有一个没有被赋值。解决:检查每一个参数的值是否真的传递过来了,很可能有些参数其实是”,这样的参数去索引数据库当然是不行的。错误类型:MicrosoftJETDatabaseEngine(0x80040E37)MicrosoftJet数据库引擎找不到输入表或查询‘AA'。确定它是否存在,以及它的名称的拼写是否正确。原因:不存在这个表。解决:应该是你写错了表名,或者连错了数据库?再仔细核对一下吧!错误类型:MicrosoftVBScript运行时错误(0x800A000D)类型不匹配:\'[string:]\”原因:是因为你的变量的类型是字符串型的,而你却当作数字或者其他类型来使用。解决:比如你需要数字的变量用来计算i=i+1等数学运算,那么应该在变量上使用cint(变量名),强制转换为数字型,两个变量之间作比较也一定要是相同的类型,因此也需要转换,方法同上。错误类型:MicrosoftJETDatabaseEngine(0x80040E07)标准表达式中数据类型不匹配。原因:一般也是在写SQL语句时发生了错误,即把数字型和字符串型的变量混淆了。解决:很好办,试一试把SQL中变量加了”的去掉单引号,或者把原先认为是数字的加上”,再查看效果。错误类型:MicrosoftVBScript运行是错误(0x800A01A8)缺少对象:”原因:很有可能是你没有对rs对象进行定义。解决:别忘了写setrs=server.CreateObject(“adodb.recordset”),这样可以定义对象;或者直接不用这种写法,直接用conn.execute(“SQL”)这样会方便得多,也不用考虑对象问题。错误类型:MicrosoftVBScript运行时错误(0x800A005E)无效使用Null:‘Replace'原因:无效使用函数的情况也比较多见,包括Split等,这个道理也比较简单,就是因为你Replace的内容是空的。解决:最好加一句IF检验一下你要replace的内容是否为空。MicrosoftVBScript编译器错误错误'800a03f6′ODBC驱动程序不支持所需的属性。原因:可能是因为没有sql语句里出现的字段名,一般为字段名或sql关键字书写错误。也有可能是sql所要打开的表已经被独占打开。解决方法:检查sql语句里出现的每个字段名,和每个关键字MicrosoftOLEDBProviderforODBCDrivers错误'80004005′机器‘HDZC-3JQSKBWO02′上的用户‘Admin'以独占方式的锁定数据表'order_detail'。原因:sql所需的表被access以表设计形式打开着解决方法:关闭表设计MicrosoftVBScript编译器错误错误'800a03f6′在对应所需名称或序数的集合中,未找到项目。原因:没有sql语句里出现的字段名,一般为字段名或sql关键字书写错误解决方法:检查sql语句里出现的每个字段名ADODB.Recordset错误'800a0e78′对象关闭时,不允许操作。原因:在rs.opensql,conn,3,3语句之前使用了rs.close关闭了rs对象解决方法:去掉之前的rs.closeMicrosoftOLEDBProviderforODBCDrivers错误'80040e14′[Microsoft][ODBCMicrosoftAccessDriver]语法错误(操作符丢失)在查询表达式‘oidformclasstreewhereoid=25′中。原因:在sql语句中存在非法书写的英文关键字或子段错误解决方法:把sql语句打出来,然后逐个单词对照,查找出书写的错误操作要求一个可更新的查询答:看看库文件是不是只读了。答2:经过排序(orderby)的记录集(rs)不允许有更新操作(rs.update)3219操作在该内容中不被允许答3:数据库字段属性是否设置为允许空值插入。adErrInvalidArgument30010x800A0BB9应用程序使用的参数其类型错误、超出可接受的范围或者与其他参数冲突。adErrNoCurrentRecord30210x800A0BCDBOF或EOF为True,或者当前记录已经删除。应用程序请求的操作需要当前记录。adErrIllegalOperation32190x800A0C93应用程序请求的操作不允许出现在该上下文中adErrInTransaction32460x800A0CAE在事务中应用程序无法显式关闭Connection对象。adErrFeatureNotAvailable32510x800A0CB3提供者不支持应用程序请求的操作。adErrItemNotFound32650x800A0CC1ADO无法在对应于应用程序请求的名称或顺序引用的集合中找到对象。adErrObjectInCollection33670x800A0D27无法追加,对象已经在集合中。adErrObjectNotSet34200x800A0D5C应用程序引用的对象不再指向有效的对象。adErrDataConversion34210x800A0D5D应用程序使用了不符合对当前操作的值类型。adErrObjectClosed37040x800A0E78如果对象关闭,则不允许应用程序请求的操作。adErrObjectOpen37050x800A0E79如果对象打开,则不允许应用程序请求的操作。adErrProviderNotFound37060x800A0E7AADO找不到指定的提供者。adErrBoundToCommand37070x800A0E7B应用程序无法用Command对象将Recordset对象的ActiveConnection属性更改为它的来源数据。adErrInvalidParamInfo37080x800A0E7C应用程序错误地定义了Parameter对象。adErrInvalidConnection37090x800A0E7D应用程序通过引用关闭或无效的Connection对象来请求对对象的操作。ADODB.Field错误'80020009′BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。解决如下:这个错误是因SELECT、DELETE的记录不存在,或者库中没有记录所引起的,所以检查SQL语句,SELECT、DELETE的条件是否正确,还有在DELETE前最好SELECT一个记录或者用OnErrorResumeNext…….OnErrorGoto0来处理。如果是因为库中没记录,只要加个判断IfobjRecordSet.EofAndobjRecordSet.BofThen就可以了,因为打开RecordSet时,指针默认是指在最面的,所以可以只用IfobjRecordSet.EofThen来判断ActiveServerPages,ASP0126(0×80004005)–找不到包含文件MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)–sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中)MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)–sql语句出错(字段名错误,或数据类型不匹配)MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)–sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)–sql语句出错(要插入或更新的数据溢出)MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)–sql语句出错(update字段名或要更新的数据类型错误)MicrosoftOLEDBProviderforODBCDrivers(0×80004005)–sql语句出错(要插入或更新的字段的数值不能为空值)MicrosoftOLEDBProviderforODBCDrivers(0×80004005)–打开数据库出错,没有在指定目录发现数据库MicrosoftOLEDBPro

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功