メニューボタン
IBMi海外記事2022.06.22

ACSを使用してSQLストアード プロシージャーをデバッグする

Mike Larsen 著

私は、毎日、Access Client Solutions(ACS)を様々なタスクに利用しています。普段は、SQLスクリプトを実行したり、IFSで作業したりするのに使用しているのですが、先日、ACSを使用してSQLストアード プロシージャーをデバッグする方法はないのかという問い合わせをいただきました。より具体的には、「非IBM i」の開発者がIBM iでSQLストアード プロシージャーをデバッグすることはできないかというものです。

ACSの「SQLスクリプトの実行」の様々なメニューを見てみたところ、システム・デバッガーがありました。以前にもシステム・デバッガーは目にしたことがあったのですが、じっくり調べてみることはしていませんでした。この新たな問い合わせを踏まえて、システム・デバッガーでどのようなことができるか見てみることとしました。すると、数分のうちに、ストアード プロシージャーをデバッグし、コードをステップ実行することができました。素晴らしいことです。

システム・デバッガーを起動するには、「SQLスクリプトの実行」内で「実行(R)」メニューをクリックして、「システム・デバッガー」を選択します(図1)。

図1.システム・デバッガーの起動

デバッガーを起動すると、新たなウィンドウが開き、プログラム名およびライブラリーの入力が求められます。図2および図3に、このウィンドウの重要な部分を示します。

図2. プログラム情報の入力

ストアード プロシージャーの名前は「TEST_SP2」で、私の個人ライブラリー「MLLIB」にあります。

図3.デバッグするジョブ

ウィンドウの「Job To Debug」の部分を取り上げたのは、デバッガーとストアード プロシージャーの実行で、同じACSセッションを使用することが重要だからです。これは、ACSセッションおよびデバッガーはIBM iで同じジョブを指示するためです。

「Start Debug」ウィンドウで「OK」をクリックすると、ストアード プロシージャーのソース コードが表示されます(図4)。コード行をクリックすると、ブレークポイントを設定することができます。ブレークポイントは、赤色の矢印で示されます。

図4. ブレークポイントの設定

次いで、ウィンドウの左上にある緑色の「Resume」ボタンをクリックして、デバッガーを開始します(図5)。

図5. デバッガーの開始

デバッガーを開始すると、ボタンは灰色表示に変わります。この時点では、ストアード プロシージャーが実行されるのを待機している状態です。ここで、「SQLスクリプトの実行」ウィンドウに戻って、ストアード プロシージャーを実行します(図6)。

図6. ストアード プロシージャーの実行

ストアード プロシージャーを実行し、デバッガー ウィンドウへ戻ると、設定したブレークポイントに位置しているのが分かります。実行される現行コード行が、黄色でハイライトされています(図7)。

図7. デバッガーの実行

コードのステップ実行を開始する前に、変化する変数の値はどこで確認できるか知っておくことは大事です。プログラム変数は、デバッガー ウィンドウの左下隅に表示されています(図8)。

図8. プログラム変数の表示

ここでは、着目する2つの変数をハイライトしています。F11キーを使用して、コードを1行ずつステップ実行します。そうするのに合わせて、変数の値が変化するのを確認できます(図9および図10)。

図9. コードのステップ実行

図10. プログラム変数の表示

コードのほとんどをステップ実行し、期待する値を確認できました。デバッグ セッションを終了するには、F11を使用して、プログラムの最後まで進みます(他にも利用可能なファンクション キーがあります)。そのようにすると、デバッグが完了したことを示すウィンドウが表示されます(図11)。

図11. デバッグの完了

1つ、ちょっとした 注意点 があります。初めてデバッガーを使用したときに、変数が16進数フォーマットで表示されていることに気付きました。幸い、この点は簡単に修正できます。デバッグ ウィンドウで、「Actions」メニューをクリックして、「Format」にカーソルを合わせます。そこで、「Hexadecimal」が選択されていない状態にするだけです(図12)。

図12. 変数フォーマットの変更

ACSには有用な機能が数多く備わっており、ストアード プロシージャーをデバッグする機能もその1つです。デバッガーのセットアップおよび実行は簡単なプロセスであり、IBM i開発者も非IBM i開発者も同じように利用することができます。この記事により、読者の皆さんのツールボックスに、もうひとつツールが加わったとしたら幸いです。

あわせて読みたい記事

PAGE TOP