Condividi tramite


Tipo VBScript non corrispondente quando il tipo di campo è adNumeric

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 usando CDbl() o CInt() 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)
 %>