我在Windows 7上使用IIS 7设置了本地服务器,用于我正在处理的经典ASP VBS网站。
页面给出了“类型不匹配”错误。原始服务器(Windows 2008,IIS 7)
不会发生这种情况相关代码:
if myRS("age") = 10 then
现在我知道代码非常简单。但是本地服务器怎么会出现这样的错误而公共服务器却没有呢?我认为比较是通过变体类型进行的,因此应该自动评估子类型没有错误吗?
答案 0 :(得分:3)
这很可能是由“..内在属性......”引起的。我的猜测是你的生产服务器已经“修复”以允许它,并且你的本地服务器设置从未体验过需要“..修复...”这个。
您可以在这里阅读更多内容:
您已经使用CreateObject
来创建记录集/ ado对象,并受到此问题的影响,导致Microsoft将其作为默认设置禁用,开箱即用配置。
在这里阅读更多内容:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;287422
虽然..如果你只是想让它起作用,那么你可以阅读第一个链接。
答案 1 :(得分:0)
它可能是不同的数据源或驱动程序,因此看起来相同的数据略有不同。
例如,它是一个空字符串,一个空字符串或null。
尝试重写,以便记录myRS的值("年龄")。
答案 2 :(得分:0)
我不知道你可以用来修复Nonym提到的服务器配置。我的建议是只更新代码以显式调用所需的属性,而不是让它被推断;如,
改变这个:
if myRS("age") = 10 then
进入这个:
if myRS("age").Value = 10 then
如果我没记错的话,这也有其他优点,尽管目前没有具体的例子可以解释为什么。祝你好运!
答案 3 :(得分:0)
似乎是一个ADO记录集问题。尝试输出myRS(“age”)值,如果它没有返回任何内容或错误,则尝试更改连接字符串中的sql驱动程序,或者甚至可能使用CStr(myRS(“age”))= CStr(10)。