ASP运行当中经常碰到的一些错误提示类型

学习ASP制作动态网页,遇到过许多的问题,想想大家可能也会遇到这类的问题,现结合网上和资料,大概整理如下,来和大家一起分享,还希望大家能一起来研究和讨论。错误类型如下:


错误类型1:
ADODB.Field (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

原因:在利用SQL查找数据库的记录时,查找结果为空,且没有对空记录的情况做出处理。
解决:1 如果不为空,那应该考虑SQL语句是否正确;
            2 如果确实有空的情况,那应该添加"if rs.eof then"或者"do while not rs.eof"之类的语句,对eof的情况进行处理。

错误类型2:
(0x80020009)
发生意外。

原因:也是在利用SQL查找数据库记录时,查找结果为空,而且在后面的代码中调用了rs("aa")之类的记录
解决:要么加上rs.eof的判断和处理,要么就是SQL语句有误,导致记录查不出来,也就无法在后来使用rs("aa")的记录。

错误类型3:
Active Server Pages, ASP 0126 (0x80004005)
找不到包含文件 'xxx.asp'。

原因:就如错误提示所说,不存在这个包含文件。
解决:如果确定有这个文件,那么就是路径写错了。

错误类型4:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

原因:这个在XP服务器上非常常见,属于服务器的配置问题,或者说是用户的权限问题。
解决:如果仅仅是在本机上调试出现的错误,则右键点击网站所在的文件夹,点击"共享和安全...",在"安全"中点添加...,写入everyone,然后再使这个用户的权限为所有,即除了第一个外全部打勾,确定之后再刷新就可以用了。(注:如果找不到“安全”选项,则在任意一个文件夹下点击“工具”,然后是“文件夹选项”--“查看”,在“使用简单文件共享”一栏把勾去掉即可)

错误类型5:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束

原因:语法错误。
解决:按系统所提示的行来检查。如果提示的恰好是本页的最后一行,则很有可能是if语句忘记写"end if",select语句忘记写"end select",总之是需要end的地方没有end,导致服务器找不到语句的结尾,只好在最后一行显示错误。

错误类型6:
Microsoft JET Database Engine (0x80040E10)
至少一个参数没有被指定值。

原因:在写SQL语句的时候,我们经常会调用一些参数,很可能这些参数中有一个没有被赋值。
解决:检查每一个参数的值是否真的传递过来了,很可能有些参数其实是空,这样的参数去索引数据库当然是不行的。

错误类型7:
Microsoft JET Database Engine (0x80040E37)
Microsoft Jet 数据库引擎找不到输入表或查询 'AA'。 确定它是否存在,以及它的名称的拼写是否正确。

原因:不存在这个表。
解决:应该是写错了表名,或者连错了数据库!

错误类型8:
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配: \'[string: ""]\''

原因:是因为变量的类型是字符串型的,却当作数字或者其他类型来使用。
解决:应该在变量上使用cint(变量名),强制转换为数字型,两个变量之间作比较也一定要是相同的类型,因此也需要转换。

错误类型9:
Microsoft JET Database Engine (0x80040E07)
标准表达式中数据类型不匹配。

原因:一般也是在写SQL语句时发生了错误,即把数字型和字符串型的变量混淆了。
解决:把SQL中变量加了''的去掉单引号,或者把原先认为是数字的加上''。

错误类型10:
Microsoft VBScript 运行是错误(0x800A01A8)
缺少对象:”

原因:很有可能是没有对rs对象进行定义。
解决:别忘了写set rs=server.CreateObject("adodb.recordset"),这样可以定义对象;或者直接不用这种写法,直接用conn.execute("SQL")这样会方便得多,也不用考虑对象问题。

错误类型11:
Microsoft VBScript 运行时错误 (0x800A005E)
无效使用 Null: 'Replace'

原因:无效使用函数的情况也比较多见,包括Split等,这个道理也比较简单,就是因为你Replace的内容是空的。
解决:最好加一句IF检验一下你要replace的内容是否为空。
 
 
错误类型12:
Microsoft JET Database Engine 错误'80004005'不能使用,文件已经使用中.
原因:文件正被占用,进行打包、上传或压缩等操作,或者代码中可能形成了嵌套调用数据库文件。
解决:当然是结束那些可能的操作了,并检查代码.
 
 
 
ASP常用错误类型
ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件

MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错(字段名错误,或数据类型不匹配)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)-->sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)-->sql语句出错(要插入或更新的数据溢出)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)-->sql语句出错(update字段名或要更新的数据类型错误)
MicrosoftOLEDBProviderforODBCDrivers(0x80004005)-->sql语句出错(要插入或更新的字段的数值不能为空值)
MicrosoftOLEDBProviderforODBCDrivers(0x80004005) -->打开数据库出错,没有在指定目录发现数据库
MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)-->没有发现表

MicrosoftVBscript运行时错误(0x800A000D)-->错误引用rs变量(rs对像已关闭或未定义)
MicrosoftVBscript运行时错误(0x800A01C2)-->vbscript脚本错误(vbscript语句出错)
MicrosoftVBscript运行时错误(0x800A0006)-->vbscript脚本错误(溢出错误)
MicrosoftVBscript编译器错误(0x800A040E)-->缺少loop
MicrosoftVBscript编译器错误(0x800A03EA)-->缺少if或endif
MicrosoftVBscript编译器错误(0x800A03EE)--> 语句未结束(缺少")")
MicrosoftVBscript编译器错误(0x800A03F6)-->if语句出错(缺少endif)
MicrosoftVBscript运行时错误(0x800A005B)-->缺少set
MicrosoftVBscript运行时错误(0x800A0005)-->变量未定义
MicrosoftVBscript编译器错误(0x800A03F9)-->if语句缺少then
MicrosoftVBscript编译器错误(0x800A0411)-->dim语句定义错误


ADODB.Recordset(0x800A0BB9)-->sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误)
ADODB.Recordset(0x800A0CC1)-->rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名)
ADODB.Recordset(0x800A0BCD)-->rs对像出错(记录集中没有记录却对记录集进行操作)
ADODB.Recordset(0x800A0E78)-->rs对像出错(记录集不存在,缺少rs.open语句)
ADODB.Recordset(0x800A0CC1) -->rs对像出错(引用了一个不存在的字段名)
ADODB.Recordset(0x800A0E7D)-->conn定义错误
ADODB.Recordset(0x800A0CB3)-->数据库以只读方式打开,无法更新数据 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值