フィールド型が adNumeric の場合、VBScript 型の型が一致しません

この記事は、フィールド型が の場合に発生する型 adNumericの不一致エラーを解決するのに役立ちます。

元の製品バージョン:インターネット インフォメーション サービス
元の KB 番号: 195180

現象

VBScript を使用して (131) フィールド型に対 adNumeric して数値比較または計算を実行すると、次のエラーが返されることがあります。

Microsoft VBScript ランタイム エラー '800a000d'
型が一致しません
Microsoft VBScript ランタイム エラー '800a01ca' 変数では、VBScript でサポートされていない Automation 型が使用されます

原因

エラーは、VBScript が値を有効な数値型に適切に変換 adNumeric できないために発生します。

解決方法

次の 2 つの回避策のいずれかを使用できます。

  • 次のadNumeric例のように、 または CInt() を使用してCDbl()フィールドを変換します。

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