AS/400のストアド・プロシージャとディストリビューテッド・プログラム・コール(DPC) [HiT ODBC/400 と HiT OLEDB/400]


DB2 ConnectivityファミリのHiT ODBC/400 と HiT OLEDB/400ではユーザがAS/400(IBM i)でストアド・プロシージャとディストリビューテッド・プログラム・コール(DPC)を実行することが可能です。次のオプションのどれでも使用可能です。

●特定のCALLシンタックスで、AS/400コマンドか、単純なCLプログラムを稼働させる。
●DPC機能を使用してインプット/アウトプット・パラメータを要求するプログラムをコールすることができます。
●CALLを使用して、ストアド・プロシージャのコール、インプット/アウトプット・パラメータのネーム、結果セットの処理が可能です。

1. ストアド・プロシージャとDPCの違い

ストアド・プロシージャで、ユーザはAS/400から結果セットを戻すことは出来ますが、ODBCがプログラムに対して正確なパラメータをパス/リトリーブ(抽出)できるストアド・プロシージャをAS/400上に作成する必要があります。DPCではユーザは結果セットを使用してAS/400からデータをリターンさせることは出来なく、アプトプット・パラメータを使用した時のみです。

実行したいディストリビューテッド(分散)プログラム用のストアド・プロシージャを作成しないでDPCを使用することは出来ます。

DPCを使用するにはAS/400上でDPCサーバをスタートさせ、 DPCを使用するためにHiT ODBC Server/400データ・ソースか、HiT OLEDB Server/400コネクション/データ・リンクをコンフィグレーションする必要があります。

2.AS/400上のCLプログラムのスタートさせるためのCALLを使用

AS/400上のプログラムをスタートさせる簡単な方法はQSYSライブラリのQCMDEXCプログラムを使用することです。AS/400コンソールのコマンド・ラインからどんなコマンドやプログラムを実行することができます。しかし、このアプローチではパラメータのパス、結果セットの使用はできません。

3.ディストリビューテッド・プログラム・コール(DPC)の利用

DPC機能の利用はAS/400上のプログラムをコールするにはかなり最良な手法です。インプット/アウトプット・パラメータの管理が可能です。アウトプット・パラメータを使用してAS/400からデータをリトリーブすることができます。

AS/400上で別言語で記述されたAS/400プログラムを起動させることができます。

DPCコールはパラメトリック・クエリーのみが可能で、DPCサーバで呼び出せるのは25パラメータの制限があります。

DPCサーバはパラメータを表示することは出来ません。なのでDescribe Parameter機能を使用することができないので、クライアントが記述したパラメータを信用するのみになります。もし変換エラーが発生した時は間違ったクライアントのパラメータ記述となります。

ADOの使用ではアウトプット・パラメータを使用してデータをリトリーブのみになります。Command objectのCreateParameterメソッドを使用して最初にアウトプット・パラメータを作成し、パラメータをコールします。アペンドし、最後にCommand objectのExecuteメソッドで実行します。

4.AS/400でのストアド・プロシージャ

ストアド・プロシージャはAS/400のパフォーマンス向上に役立ちます。

AS/400のストアド・プロシージャはMicrosoft SQL Serverや ORACLEなどの他のRDBMストアド・プロシージャとは違っています。

SQL ServerとORACLEのストアード・プロシージャはRDBM内部でインタープレット/実行されるスクリプト言語を使用して記述されたプログラムです。

AS/400でのストアド・プロシージャはAS/400でのRDBMで提供されているODBS (Optimized Database Server)から RPG, CL, Cのような言語で記述されたプログラムをユーザが実行できるようにするブリッジです。同じプログラムはODBCをコールするAS/400のコマンド・ラインで通常は直接に実行することができます。

ストアド・プロシージャはODBSにプログラム・コール、正確にパラメータのパス、結果の抽出を可能とさせます。

ストアド・プロシージャを使用するもう1つの理由は、SQL Serverがリモート・プログラムのコールが可能になります。

*詳細なサンプルプログラムについてはこちらを参照ください。

関連したトピックス