ADO連携時にDecimal型およびNumeric型のParameterオブジェクトを使用した場合に発生するエラー「JYP9612E」の原因と対処について

ADO連携時にDecimal型およびNumeric型のParameterオブジェクトを使用すると「JYP9612E ディスクリプタ情報が一致しません.」のエラーが発生します。
原因と対象方法を教えてください。
ADO連携時、DECIMAL型およびNUMERIC型のParameterオブジェクトには、精度と位取りの設定が必要です。
精度は、ParameterオブジェクトのPrecisionプロパティで設定します。
位取りは、ParameterオブジェクトのNumericScaleプロパティで設定します。
以下にNUMERIC型を更新する例を示します。

【例】


Dim adoCon As New ADODB.Connection
Dim adoCom As ADODB.Command
Dim adoPar As ADODB.Parameter

adoCon.ConnectionString = "DSN=DSN01;UID=USER01;PWD=PASS01"
adoCon.Open

adoCon.BeginTrans

Set adoCom = New ADODB.Command
adoCom.ActiveConnection = adoCon
adoCom.CommandText = "UPDATE RT_TBL SET C_NUM=? WHERE C_KEY=1"
adoCom.CommandType = adCmdText

'Parameteroオブジェクトの設定
Set adoPar = adoCom.CreateParameter("", adNumeric, , , 333.33)
adoPar.Precision = 5 '●精度の設定
adoPar.NumericScale = 2 '●位取りの設定
adoCom.Parameters.Append adoPar

adoCom.Execute

adoCon.CommitTrans

adoCon.Close

Set adoCom = Nothing
Set adoCon = Nothing
製品・サービス区分 Symfoware
製品・サービス情報
対象製品 Symfoware Server (Native Interface)
プラットフォーム Windows
アンサー種別 運用/保守
このページの先頭へ