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 adNumeric Feld mit oder wie im folgenden CDbl() 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)
 %>