运行 ASP 时的常见错误类型和排解方法
由于 ASP 仍然是当前比较流行的网站编辑语言,而且相对于其它几门语言,它简单易 用。因为简单,所以许多开发者也不会去思考错误处理,但错误处理不仅能培养良好的编程 习惯、使程序完美,而且可以防止不必要的数据暴露,保证网站安全。
ASP 主要有以下三种错误类型: 1、编译错误:这种错误出现一般都是代码的语法问题。因为编译错误而导致 ASP 停止运 行。
错误类型: ADODB.Field (0x800A0BCD) BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记 录。 原因:你在利用 SQL 查找数据库的记录时,查找结果为空,而且你没有对空记录的情况做 出处理。 解决:1 如果你不相信查找结果为空,那你应该考虑你的 SQL 语句是否正确;2 如果确 实有空的情况,那你应该添加”if rs.eof then”或者”do while not rs.eof”之类的语句,对 eof 的情况进行处理。 错误类型: (0×80020009) 发生意外。 原因:也是在利用 SQL 查找数据库记录时,查找结果为空,而且你在后面的代码中调用了 rs(“aa”)之类的记录 解决:要么同上,加上 rs.eof 的判断和处理,要么就是你的 SQL 语句有误,导致记录查不 出来,也就无法在后来使用 rs(“aa”)的记录了。 错误类型: Active Server Pages, ASP 0126 (0×80004005) 找不到包含文件 ‘xxx.asp'。 原因:就如错误提示所说,不存在这个包含文件。 解决:如果你确定有这个文件,那么就是你的路径写错了,比如说其实他相对于网站根目录 的路径应该是 inc/xxx.asp,那么 include 里面就应该写 inc/xxx.asp,而不仅仅是 xxx.asp。 错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0×80004005) [Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。 原因:这个在 XP 服务器上非常常见,属于服务器的配置问题,或者说是用户的权限
问题。 解决:如果仅仅是在本机上调试出现的错误,则右键点击网站所在的文件夹,点击”共享和 安全…”,在”安全”中点添加…,写入 everyone,然后再使这个用户的权限为所有,即除了 第一个外全部打勾,确定之后再刷新就可以用了。(注:如果找不到“安全”选项,则在任意 一个文件夹下点击“工具”,然后是“文件夹选项”--“查看”,在“使用简单文件共享”一栏把 勾去掉即可)
错误类型: Microsoft VBScript 编译器错误 (0x800A0401) 语句未结束 原因:语法错误。 解决:按
系统所提示的行来检查。如果提示的恰好是本页的最后一行,则很有可能是 if 语 句忘记写”end if”啦, select 语句忘记写”end select”啦, 总之是需要 end 的地方没有 end, 导致服
务器找不到语句的结尾,只好在最后一行显示错误。
错误类型: Microsoft JET Database Engine (0x80040E10) 至少一个参数没有被指定值。 原因:在写 SQL 语句的时候,我们经常会调用一些参数,很可能这些参数中有一个没有被 赋值。 解决:检查每一个参数的值是否真的传递过来了,很可能有些参数其实是”',这样的参数去 索引数据库当然是不行的。
错误类型: Microsoft JET Database Engine (0x80040E37) Microsoft Jet 数据库引擎找不到输入表或查询 ‘AA'。 确定它是否存在,以及它的名称的 拼写是否正确。 原因:不存在这个表。 解决:应该是你写错了表名,或者连错了数据库?再仔细核对一下吧!
错误类型: Microsoft VBScript 运行时错误 (0x800A000D) 类型不匹配: \'[string: '']\” 原因:是因为你的变量的类型是字符串型的,而你却当作数字或者其他类型来使用。
解决:比如你需要数字的变量用来计算 i=i 1 等数学运算,那么应该在变量上使用 cint(变 量名),强制转换为数字型,两个变量之间作比较也一定要是相同的类型,因此也需要转换, 方法同上