VBScript Type type mismatch when field type is adNumeric
This article helps you resolve the Type Mismatch error that occurs when field type is adNumeric
.
Original product version: Internet Information Services
Original KB number: 195180
Symptoms
When you perform a numeric comparison or calculation on an adNumeric
(131) field type using VBScript, the following errors may be returned:
Microsoft VBScript runtime error '800a000d'
Type mismatch
Microsoft VBScript runtime error '800a01ca' Variable uses an Automation type not supported in VBScript
Cause
The errors occur because VBScript cannot properly convert adNumeric
values to a valid numeric type.
Resolution
You can use either of the following two possible workarounds:
Convert the
adNumeric
field usingCDbl()
orCInt()
as in the following example:<%@ 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, because JScript does not exhibit this behavior.
Steps to Reproduce the Behavior
The following code exhibits the above-mentioned error:
<%
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)
%>
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for