Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous aide à résoudre l’erreur d’incompatibilité de type qui se produit lorsque le type de champ est adNumeric
.
Version du produit d’origine : Internet Information Services
Numéro de la base de connaissances d’origine : 195180
Symptômes
Lorsque vous effectuez une comparaison numérique ou un calcul sur un adNumeric
type de champ (131) à l’aide de VBScript, les erreurs suivantes peuvent être retournées :
Erreur d’exécution Microsoft VBScript « 800a000d »
Incompatibilité de type
Erreur d’exécution Microsoft VBScript « 800a01ca » Variable utilise un type Automation non pris en charge dans VBScript
Cause
Les erreurs se produisent car VBScript ne peut pas convertir adNumeric
correctement les valeurs en un type numérique valide.
Résolution
Vous pouvez utiliser l’une des deux solutions de contournement possibles suivantes :
Convertissez le
adNumeric
champ à l’aideCDbl()
ouCInt()
comme dans l’exemple suivant :<%@ 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) %>
Utilisez JScript, car JScript n’affiche pas ce comportement.
Étapes de reproduction du comportement
Le code suivant présente l’erreur mentionnée ci-dessus :
<%
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)
%>