データベース エラー メッセージのキャッチ<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
データベースのエラー メッセージをキャッチして、それを 1 つの jmp 変数に入れる方法があるかどうかを知りたいです。
ID主キーにすでに存在する1つの値を挿入しようとすると、Oracle DBの例:
/* JSL */
sql = "INSERT INTO MY.TABLE (ID, DATA) VALUES ('A',150)";
OpenDatabase (dsnDB、SQL);
/* ログ表示 */
[Oracle][ODBC][Ora]ORA-00001: 一意の制約 (MY.TABLE) に違反しています
ORA-06512: 1行目
この文字列をjsl変数に入れたいと思います:「[Oracle] [ODBC] [Ora] ORA-00001:一意の制約(MY.TABLE)に違反しました」。
今のところ解決策は見つかりませんでした。
ありがとう。
Re: データベースのエラー メッセージをキャッチするやあ、
この素晴らしいヒントをありがとう。 Log Capture 機能は、私が探していた機能です。
Re: データベースのエラー メッセージをキャッチするやあ、
これを行う 1 つの方法は、ログ キャプチャ機能を使用することです。 JSL コードをテストするために、2 つの異なるタイプのエラーをシミュレートしました。
- 指定されたテーブルから列を選択する前に Access データベースへの接続を確立しないことによる失敗エラー
- 適切な ODBC ドライバーがインストールされていないことによる失敗エラー
次のJSLコードとその結果のエラーメッセージでやりたいことを達成する方法の例を含めました:
名前のデフォルトはここ
( 1 ) ;AccessError01 = 「アクセスエラー:」 ||ログキャプチャ(データベースを開く(
"DSN=MS Access データベース;DBQ=C:UsersstkoprDocumentsMovinOn.accdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;" 、
"SELECT * FROM tblVehicle" 、
「tblビークル」
))) ;
以下がログに書き込まれ、エラー文字列がシナリオ テスト 1 の変数 AccessError01 に格納されます。
「アクセスエラー:[Microsoft][ODBC Microsoft Access Driver] ファイル '(unknown)' が見つかりませんでした。
"
以下がログに書き込まれ、シナリオ テスト 2 の変数 AccessError01 に文字列が格納されます。
「アクセスエラー:[iODBC][ドライバー マネージャー] データ ソース名が見つからず、既定のドライバーが指定されていません。 ドライバーをロードできませんでした
"
はい、できます... ODBC データベースに接続できます