キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
言語を選択 翻訳バーを非表示
最初に公開されたスレッドを表示

データベース エラー メッセージのキャッチ

gbu
gbu
Level III

こんにちは、

データベースのエラー メッセージをキャッチして、それを 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)に違反しました」。

今のところ解決策は見つかりませんでした。

ありがとう。

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

1 件の受理された解決策

受理された解決策
stan_koprowski
Community Manager Community Manager

Re: データベースのエラー メッセージをキャッチする

やあ、

これを行う 1 つの方法は、ログ キャプチャ機能を使用することです。 JSL コードをテストするために、2 つの異なるタイプのエラーをシミュレートしました。

  1. 指定されたテーブルから列を選択する前に Access データベースへの接続を確立しないことによる失敗エラー
  2. 適切な 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 データベースに接続できます

2件の返信2
stan_koprowski
Community Manager Community Manager

Re: データベースのエラー メッセージをキャッチする

やあ、

これを行う 1 つの方法は、ログ キャプチャ機能を使用することです。 JSL コードをテストするために、2 つの異なるタイプのエラーをシミュレートしました。

  1. 指定されたテーブルから列を選択する前に Access データベースへの接続を確立しないことによる失敗エラー
  2. 適切な 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 データベースに接続できます

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

gbu
gbu
Level III

Re: データベースのエラー メッセージをキャッチする

やあ、

この素晴らしいヒントをありがとう。 Log Capture 機能は、私が探していた機能です。

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。