- PR -

C#+Ole Oracleエラーコードの取得について

1
投稿者投稿内容
かい
常連さん
会議室デビュー日: 2003/05/27
投稿数: 34
投稿日時: 2005-06-09 21:17
C#+Oleを使用して、Oracle9i上のテーブルに、データをInsertしようと
しています。
Insertに失敗(例えば、NULL制約違反等)した時、どのようなエラーが
発生したのか分かるために、Oracleエラーコードを取得したいと考えて
います。
(「NULL制約違反なら、1407」のように)

OleDbExceptionをcatchし、ErrCodeやMessageを参照しましたが、希望する
コードが取れませんでした。

Oracleエラーコードの取得方法をご存じの方がいらっしゃたら、教えて
いただけますか?
よろしくお願いします。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-06-09 21:37
ODP.NETを使えば何も問題はないと思うのですが・・・
Data Provider for OLE DB を使っている理由は何ですか?

ちなみにOleDbErrorクラスを使えば、Oracleのネイティブなエラーコードも取得できるはずです。
かい
常連さん
会議室デビュー日: 2003/05/27
投稿数: 34
投稿日時: 2005-06-09 21:46
甕星さん、返信ありがとうございます。

説明不足ですみません。
Data Provider for OLE DB を使用した理由は、OracleとMDBを、
Connectionのみを変えることによって、アクセスするクラス(SQLを実行する
クラス)を共通化しようと思ったからです。

OleDbErrorクラスについては、調査不足でした。

アドバイス、ありがとうございました。
かい
常連さん
会議室デビュー日: 2003/05/27
投稿数: 34
投稿日時: 2005-06-09 22:01
かいです。

アドバイスをいただき、エラーコードを取得することができました。
その時のコードを記載します。(省略してますが。。。)

catch (OleDbException cause)
{
  System.Console.WriteLine(cause.Errors[0].Message) ;
}

下記のように表示しました。

ORA-01400: ("USER"."EMP"."AGE")にはNULLは挿入できません。

どうもありがとうございました。
1

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