Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo ajuda a resolver o erro de incompatibilidade de tipo que ocorre quando o tipo de campo é adNumeric.
Versão original do produto: Serviços de Informações da Internet
Número original do KB: 195180
Sintomas
Quando você executa uma comparação ou cálculo numérico em um tipo de adNumeric campo (131) usando VBScript, os seguintes erros podem ser retornados:
Erro de tempo de execução do Microsoft VBScript '800a000d'
Tipos incompatíveis
A variável de erro de tempo de execução do Microsoft VBScript '800a01ca' usa um tipo de automação não suportado no VBScript
Causa
Os erros ocorrem porque o VBScript não pode converter adNumeric corretamente os valores em um tipo numérico válido.
Solução
Você pode usar uma das duas soluções alternativas possíveis a seguir:
Converta o
adNumericcampo usandoCDbl()ouCInt()como no exemplo a seguir:<%@ 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 o JScript não exibe esse comportamento.
Etapas para reproduzir o comportamento
O código a seguir exibe o erro mencionado acima:
<%
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)
%>