VB.NET2010ExpでADODB.Parameters.Appendが異常終了する
- 題名: VB.NET2010ExpでADODB.Parameters.Appendが異常終了する
- 著者: 鈴木M
- 日時: 2012/12/18 18:35:00
- ID: 31187
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: VB.NET2010ExpでADODB.Parameters.Appendが異常終了する
- 著者: オショウ
- 日時: 2012/12/18 18:39:28
- ID: 31188
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: VB.NET2010ExpでADODB.Parameters.Appendが異常終了する
- 著者: 鈴木M
- 日時: 2012/12/18 19:38:33
- ID: 31190
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: VB.NET2010ExpでADODB.Parameters.Appendが異常終了する
- 著者: オショウ
- 日時: 2012/12/18 20:29:38
- ID: 31191
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: VB.NET2010ExpでADODB.Parameters.Appendが異常終了する
- 著者: 魔界の仮面弁士
- 日時: 2012/12/19 2:52:10
- ID: 31192
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: VB.NET2010ExpでADODB.Parameters.Appendが異常終了する
- 著者: shu
- 日時: 2012/12/19 15:10:46
- ID: 31193
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: VB.NET2010ExpでADODB.Parameters.Appendが異常終了する
- 著者: 鈴木M
- 日時: 2012/12/19 22:27:28
- ID: 31194
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
【解決したい問題】
vb.net2010 express版を使用して、ADODBを使いオラクルへ接続を行っています。
引数付のストアドプロシージャを実行する為にADODB.commandクラスを利用してADODB.parametersコレクションをappendで追加をしようとしているのですが、以下のエラーで例外が発生してしまいます。
↓↓↓↓↓ 例外内容 ↓↓↓↓↓
型 'System.__ComObject' の COM オブジェクトをクラス型 'ADODB.InternalParameter' にキャストできません。COM コンポーネントを表す型のインターフェイスを COM コンポーネントを表さない型にキャストすることはできません。ただし、基になる COM コンポーネントがインターフェイスの IID の QueryInterface 呼び出しをサポートする場合は、インターフェイスにキャストすることができます。
↑↑↑↑↑ 例外内容 ↑↑↑↑↑
↓↓↓↓↓ 処理ロジック ↓↓↓↓↓
Dim objCon As New ADODB.Connection
Dim objCom As New ADODB.Command
Dim objPara As New ADODB.Parameter
Try
objCon.ConnectionString = _
"Provider=OraOLEDB.Oracle;" & _
"Data source=DSN_NAME;" & _
"User Id=USER_ID;" & _
"Password=PASSWD;" & _
"FetchSize=1000"
objCon.Open()
objCom.ActiveConnection = objCon
objCom.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
'このappendでエラーが発生する objCom.Parameters.Append(objCom.CreateParameter("P1", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamInput, 4000, "ABCD"))
objCom.CommandText = "KS_PKG.ks_sample"
objCom.Execute()
objCon.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
↑↑↑↑↑ 処理ロジック ↑↑↑↑↑
【解決するために何をしたか】
コード内容の確認も含め、vb.net2003、vb.net2008のバージョンで同一コードを実施しましたが、問題なく正常に処理されストアドプロシージャの実行もされました
※2003、2008はPro版
2010バージョンがいけないのか、Express版の問題なのかは不明です。2010のPro版が手元にないので実施できていません。
既存システムとの絡みがあり、ADO.NETではなくADODBを利用しなくてはいけなく、知識不足のため解決策がみえない状況です。
ご教授頂けたら幸いです。
以上