VBScript-Typ stimmt nicht überein, wenn feldtyp adNumeric ist
Dieser Artikel hilft Ihnen bei der Behebung des Fehlers "Typenkonflikt", der auftritt, wenn feldtyp adNumeric ist.
Ursprüngliche Produktversion: Internetinformationsdienste
Ursprüngliche KB-Nummer: 195180
Problembeschreibung
Wenn Sie einen numerischen Vergleich oder eine Berechnung für einen adNumeric (131) Feldtyp mitHILFE von VBScript durchführen, können die folgenden Fehler zurückgegeben werden:
Microsoft VBScript-Laufzeitfehler '800a000d'
Typenkonflikt
Microsoft VBScript-Laufzeitfehler '800a01ca' Variable verwendet einen Automatisierungstyp, der in VBScript nicht unterstützt wird
Ursache
Die Fehler treten auf, da VBScript Werte nicht ordnungsgemäß in einen gültigen numerischen Typ konvertieren adNumeric kann.
Lösung
Sie können eine der folgenden beiden möglichen Problemumgehungen verwenden:
Konvertieren Sie das
adNumericFeld mit oder wie im folgendenCDbl()CInt()Beispiel:<%@ 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) %>Verwenden Sie JScript, da JScript dieses Verhalten nicht aufweist.
Schritte zum Reproduzieren des Verhaltens
Der folgende Code weist den oben genannten Fehler auf:
<%
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)
%>