当前位置: 主页 > 服务器技术 > Web服务器 > Microsoft VBscript运行时错误 800a000d 解决方案

Microsoft VBscript运行时错误 800a000d 解决方案

时间:2009-9-17来源:互联网 点击:
遇到了一个比较麻烦的问题就是从SQL Server中读取数据。从表面上看其实并没有什么难度,但是因为之后需要用到计算,所以必须在数据类型不匹配的情况下,就遇到了一个数据类型转换的问题。

一直以来遇到类型转换我经常会碰到问题,而且经常会很莫名不知道为什么会这样,后来经过查阅了大量资料以后,总结出ASP在类型转换时需要注意的一点:被转换的数据不能为空(Null)

我们必须在对变量进行类型转换前,先做一个是否为空的判断,因为很多时候读取出来的数据可能是空的,对于整形来说,默认的应该是0,而字符串类型的确是空的,所以这样就会出现

Microsoft VBScript 运行时错误错误 ‘800a000d‘
类型不匹配: ‘Cint‘

这样一来,碰到类型转换就不怕了,不过下面这种情况可能是你不太容易想到的,让我整整抓狂了一晚上了呵呵。

在使用了上面的方法以后,仍然存在问题,还是显示类型不匹配,这个又是为什么呢?我在转换前已经做了判断,还是不起作用,难道传输过来的数据不是空的吗?于是我用len()函数测试了一下,显示长度为8,晕~

明明是空的,为什么长度是8?于是直接到SQL Server企业管理器查询,找到了问题所在!原来数据库这个字段默认值为“8个空格”。。我靠!谁设计的数据库表结构,真是的,一点专业水准都没有!

问题结论:因为是8个空格,因此,转换成整形当然是“类型不匹配了”。

经过这次的经验,以后在字符串处理的时候,如果遇到某些看不见的字符难以处理的话,还是使用返回长度的函数看一下究竟有没有字符,然后再根据具体情况进行处理。

网上相关资料(不过现在的系统基本不存在此问题了):

在使用vbscript进行asp开发时,一些朋友会碰到以下类似的错误:
Microsoft VBScript 运行时错误 错误 ‘800a000d‘ 

类型不匹配: ‘page1‘ 

/main.asp,行 2541


 

错误原因:
该错误是因为在运行iis服务的windows 2003 server上安装了Internet Explorer 6 Service Pack 1 (KB832894)安全更新造成的。

解决方案:
要纠正该问题,请下载并安装Q831167.exe(http://www.microsoft.com/downloads/details.aspx?amp;amp;displaylang=en&familyid=254EB128-5053-48A7-8526-BD38215C74B2&displaylang=en),可以在Windows Server 2003机器上阅读微软知识库831167 http://support.microsoft.com/default.aspx?kbid=831167 了解一些相关信息。
站长资讯网
. TAG: MICROSOFT CRIPT 方案 运行
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言