Error de coincidencia del tipo de tipo VBScript cuando el tipo de campo es adNumeric

Este artículo le ayuda a resolver el error Desajuste de tipo que se produce cuando el tipo de campo es adNumeric .

Versión del producto original:   Internet Information Services
Número KB original:   195180

Síntomas

Al realizar una comparación numérica o un cálculo en un tipo de campo adNumeric (131) con VBScript, se pueden devolver los siguientes errores:

Error en tiempo de ejecución de Microsoft VBScript '800a000d'
Error de coincidencia de tipos
Error de tiempo de ejecución de Microsoft VBScript Variable "800a01ca" usa un tipo de automatización no compatible con VBScript

Causa

Los errores se producen porque VBScript no puede convertir correctamente adNumeric valores a un tipo numérico válido.

Solución

Puede usar cualquiera de las dos soluciones alternativas posibles siguientes:

  • Convierta el adNumeric campo con o como en el ejemplo CDbl() CInt() siguiente:

     <%@ 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)
     %>
    
  • Use JScript, ya JScript no muestra este comportamiento.

Pasos para reproducir el comportamiento

El siguiente código muestra el error mencionado anteriormente:

<%
 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)
 %>