Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come risolvere l'errore di mancata corrispondenza del tipo che si verifica quando il tipo di campo è adNumeric
.
Versione originale del prodotto: Internet Information Services
Numero KB originale: 195180
Sintomi
Quando si esegue un confronto numerico o un calcolo su un adNumeric
tipo di campo (131) usando VBScript, è possibile che vengano restituiti gli errori seguenti:
Errore di runtime di Microsoft VBScript '800a000d'
Tipo non corrispondente
Errore di runtime di Microsoft VBScript '800a01ca' Variabile usa un tipo di automazione non supportato in VBScript
Causa
Gli errori si verificano perché VBScript non è in grado di convertire adNumeric
correttamente i valori in un tipo numerico valido.
Risoluzione
È possibile usare una delle due soluzioni alternative seguenti:
Convertire il
adNumeric
campo usandoCDbl()
oCInt()
come nell'esempio seguente:<%@ 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) %>
Usare JScript, perché JScript non presenta questo comportamento.
Passaggi per riprodurre il comportamento
Il codice seguente mostra l'errore indicato in precedenza:
<%
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)
%>