Delen via


VbScript-typetype komt niet overeen wanneer het veldtype adNumeric is

Dit artikel helpt u bij het oplossen van de fout Type niet-overeenkomen die optreedt wanneer het veldtype zich voordoet adNumeric.

Oorspronkelijke productversie: Internet Information Services
Oorspronkelijk KB-nummer: 195180

Symptomen

Wanneer u een numerieke vergelijking of berekening uitvoert op een adNumeric veldtype (131) met behulp van VBScript, kunnen de volgende fouten worden geretourneerd:

Microsoft VBScript-runtimefout '800a000d'
Type komt niet overeen
Microsoft VBScript-runtimefout '800a01ca' Variabele maakt gebruik van een Automation-type dat niet wordt ondersteund in VBScript

Oorzaak

De fouten treden op omdat VBScript waarden niet correct kan converteren adNumeric naar een geldig numeriek type.

Oplossing

U kunt een van de volgende twee mogelijke tijdelijke oplossingen gebruiken:

  • Converteer het adNumeric veld met behulp van CDbl() of CInt() zoals in het volgende voorbeeld:

     <%@ 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)
     %>
    
  • Gebruik JScript, omdat JScript dit gedrag niet vertoont.

Stappen voor het reproduceren van het gedrag

De volgende code vertoont de bovenstaande fout:

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