Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a resolver el error de coincidencia de tipos que se produce cuando el tipo de campo es adNumeric.
Versión del producto original: Internet Information Services
Número de KB original: 195180
Síntomas
Al realizar una comparación numérica o un cálculo en un adNumeric tipo de campo (131) mediante VBScript, se pueden devolver los siguientes errores:
Error de tiempo de ejecución de Microsoft VBScript “800a000d”
Error de coincidencia de tipos
Error en tiempo de ejecución de Microsoft VBScript "800a01ca" Variable usa un tipo de Automatización no admitido en VBScript
Causa
Los errores se producen porque VBScript no puede convertir adNumeric correctamente los valores en un tipo numérico válido.
Solución
Puede usar cualquiera de las dos posibles soluciones posibles:
Convierta el
adNumericcampo medianteCDbl()oCInt()como en el ejemplo 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, porque JScript no muestra este comportamiento.
Pasos para reproducir el comportamiento
El código siguiente 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)
%>