- PR -

ODBC接続にてDB2からBLOB型のデータを取得したい

投稿者投稿内容
SURF0777
会議室デビュー日: 2007/01/19
投稿数: 7
投稿日時: 2007-01-19 23:21
質問させてください。

現在、VB.Net2005にてDB2 V5からデータを取得して
OracleにInsertしようと試みているのですが、
DB2からBLOB型の列のデータを取得しようとすると、
エラーが発生して取得できず困っています。
BLOB型以外の列に関しては取得できています。

VB.NetからのDB2への接続は、ODBCにて行っています。

デバッグにて、エラーが発生している場所は、
データアダプタでFillメソッドを実行している箇所です。

上記の現象に、お心当りの方はお知恵をお貸し下さい。
よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-01-20 10:31
 エラー(例外)メッセージと、BLOB 型のデータを受けようとしているカラムに設定した、.NET 側の型を教えてください。
_________________
SURF0777
会議室デビュー日: 2007/01/19
投稿数: 7
投稿日時: 2007-01-20 12:09
Jitta様、返信ありがとうございます。

エラー(例外)メッセージは、例外発生箇所でのExeption.Messageで、
「不明な SQLの 種類です - -95」です。現在、開発環境におりませんので、
自分の記憶している内容ですが。。。

.NET側の型は、空のデータセットにSQLにて取得したデータを対応する.NET側の型で
そのまま格納したいので、特に指定はしておりません。

また、暗黙的型変換がまずいのかとも思い、Byte型の配列で
受けようともしたのですが、同様のエラーが発生しました。

よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-01-20 14:58
では、DB2のエラー コード -95 について、調べてみて下さい。
_________________
SURF0777
会議室デビュー日: 2007/01/19
投稿数: 7
投稿日時: 2007-01-20 22:18
Jittaさん、お世話になります。

エラーコード-95について調べてみたのですが、エラーコード-95については
分かりませんでした。自分の記憶違いかもしれません。
ただ、-95に近い-97のエラーの情報で言うと、
「ステートメント内で指定されているデータ・タイプは、プロシージャーまたは関数に対して指定できません。 LONG VARCHAR などのデータ・タイプは列に対してのみ指定でき、パラメーターとして指定することはできません。」
となっていたので、エラーコード-97だったのかもしれません。

エラーを返しているのは、ODBCドライバのようなのでODBCによる接続で
BLOB型のデータを取得するのは無理なのでしょうか?
それとも何か方法があるのでしょうか?

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-21 00:08
引用:

SURF0777さんの書き込み (2007-01-20 22:18) より:

エラーを返しているのは、ODBCドライバのようなのでODBCによる接続でBLOB型のデータを取得するのは無理なのでしょうか?それとも何か方法があるのでしょうか?


IBM OLEDB DB2 プロバイダを、使用されてみてはいかがでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
SURF0777
会議室デビュー日: 2007/01/19
投稿数: 7
投稿日時: 2007-01-21 01:01
じゃんぬねっと様、返信ありがとうございます。

MSDNライブラリ等をのぞいてみても、BLOB型のOdbcTypeから.NET FrameWork型への
変換がサポートされていない雰囲気が自分として読み取れましたので、
やはり、ODBCではだめなんですかね。。。

IBM OLEDB DB2 プロバイダですね。了解しました。試してみたいと思います。
作業が明後日になると思いますので、結果が出ましたら、この場でご報告したいと
思います。
SURF0777
会議室デビュー日: 2007/01/19
投稿数: 7
投稿日時: 2007-01-22 23:29
お世話になります。

OLEDB接続にてDB2に接続を試みてみようとしたのですが。。。
IBM OLEDB DB2 プロバイダが見つからないのです。。。

DB2のクライアントをインストールしているのですが、
IBM OLEDB DB2 プロバイダはインストールされていないんですね。

この場で解決のご報告をさせていただきたかったのですが、
出直してきます。。。

スキルアップ/キャリアアップ(JOB@IT)