PRB: VBScript "Typekonflikt" feil når feltet Type er adNumeric


Symptomer


Når du utfører en numerisk sammenligning eller beregning på en felttype for adNumeric (131) ved hjelp av VBScript, kan det bli returnert følgende feil:

Microsoft VBScript kjøretidsfeil '800a000d'
Typekonflikt
Microsoft VBScript kjøretidsfeil '800a01ca'-variabelen bruker en automatiseringstype som ikke støttes i VBScript

Årsak


Feilene oppstår fordi VBScript riktig ikke kan konvertere adNumeric-verdiene til en gyldig numerisk type.

Løsning


Du kan bruke en av følgende to mulige løsninger:

  • Konvertere feltet adNumeric ved hjelp av CDbl() (eller CInt()) som i følgende eksempel:

       <%@ 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)
    %>


    - eller -

  • Bruke JScript, fordi JScript ikke viser denne atferden.

Hvis du vil ha mer informasjon


Slik gjenskaper du virkemåten

Følgende kode utstillinger feilen nevnt ovenfor:
<%
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)
%>