AdNumeric 字段类型时,VBScript 类型类型不匹配

本文帮助您解决字段类型为时出现的类型不匹配错误 adNumeric

原始产品版本:   Internet information Services
原始 KB 数:   195180

症状

当您 adNumeric 使用 VBScript 对 (131) 字段类型执行数值比较或计算时,可能会返回以下错误:

Microsoft VBScript runtime 错误 "800a000d"
类型不匹配
Microsoft VBScript runtime 错误 "800a01ca" 变量使用 VBScript 中不支持的自动化类型

原因

出现这些错误的原因是 VBScript 无法正确地将 adNumeric 值转换为有效的数值类型。

解决方案

您可以使用以下两种可能的解决方法之一:

  • adNumeric使用 CDbl()CInt() 在下面的示例中按如下方式转换字段:

     <%@ LANGUAGE="VBScript"%>
     <%
     Set oConn = Server.CreateObject("ADODB.Connection")
     oConn.Open "MyDSN", "MyUserID", "MyPassWord"
     set oRS = oConn.Execute("Select list_price FROM DEMO.PRICE")
     Response.Write("List Price * 100 = " & CDbl(oRS("list_price")) * 100)
     %>
    
  • 使用 JScript,因为 JScript 不会展示此行为。

再现行为的步骤

下面的代码展示了上面提到的错误:

<%
 Set oConn = Server.CreateObject("ADODB.COnnection")
 oConn.Open "MyDSN", "MyUserID", "MyPassWord"
 set oRS = oConn.Execute("Select list_price FROM DEMO.PRICE")'This is the bad line of code, "list_price" is being returned as
 'type adNumeric.
 Response.Write("List Price * 100 = " & oRS("list_price") * 100)
 %>