Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 vanCDbl()
ofCInt()
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)
%>