當欄位類型是 adNumeric 時,不相符的 VBScript 類型類型

本文可協助您解決當欄位類型是時發生的類型不符錯誤 adNumeric

原始產品版本:   網際網路資訊服務
原始 KB 編號:   195180

徵狀

當您 adNumeric 使用 VBScript 的 (131) 欄位類型執行數值比較或計算時,可能會傳回下列錯誤:

Microsoft VBScript runtime 錯誤 ' 800a000d '
類型不符
Microsoft VBScript runtime 錯誤 ' 800a01ca ' 變數使用 VBScript 不支援的 Automation 類型

原因

發生錯誤是因為 VBScript 無法將值正確地轉換 adNumeric 為有效的數數值型別。

解決方案

您可以使用下列兩種可能的解決方法之一:

  • adNumeric使用 CDbl()CInt() 下列範例中的轉換欄位:

     <%@ 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)
     %>
    
  • 使用 JScript,因為 JScript 並未呈現此行為。

再現行為的步驟

下列程式碼展示上述錯誤:

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