例1 - SET PARAMETER(*SQL) コマンドの使用

この例では、SQLServiceサービスを使用してデータベースにクエリーを実行する方法を実証します。EXECUTEコマンドにSQLステートメントを作成するのではなく、SET PARAMETER(*SQL)コマンドを使用してSQLステートメントを事前に作成します。SET PARAMETER(*SQL)を使用せず、EXECUTEコマンドにSQLステートメントを作成するだけで同じクエリーを実行する方法を示すには、注釈が挿入されます。
この例では、JSMJDBC という IBM i のデータベースに接続します (これは IBM i の例であるため、データベース名はライブラリ名になります)。CONNECTコマンドで使用されるドライバー名は、SQLServiceプロパティ・ファイルで定義されるドライバー名とパスに相当します。アクセスするファイルはTBLNAMEとなります。これは、ID、NAME、AGE、SALARY、DEPT、GRADEの各フィールドで構成されます。
以下のような手順になります。
1.      JSMCOMMAND から返されるメッセージを処理するフィールドを定義します。
2.      クエリーから返される値を入れるフィールドを定義します。
3.      作業リストを定義します。この作業リストの列は、ステップ 2 で作成したフィールドです。この作業リストが最終的にクエリからの結果のセットを保持します。
4.      SQLステートメントを入れるフィールドを定義します。
5.      SQLステートメントを入れる作業リストを定義します。これは 1 つの列のリストになり、使用されるフィールドはステップ 4 で定義したフィールドになります。
6.      JSM を開始し、SQLService をロードして、データベース・ドライバーに接続します。
7.      SQL ステートメントを作成して作業リストに配置します。
8.      SETコマンドを使用してSQLパラメータを保存します。キーワードPARAMETER(*SQL)を使用して、後から実行されるEXECUTEコマンドのSQLステートメントを入れる作業リストをこのコマンドで提供するように指定しています。また、SQLステートメントを入れる作業リストのフィールドを指定するために、SERVICE_LOADキーワードがこのコマンドに関連付けられている点にも注意してください。ここで指定するフィールド名は、このJSMコマンドのTO_GET部分の作業リストで定義されたフィールド名と同じでなければなりません。
9.      次のステップは、コマンドの実行です。この例では、すでに作成されたSQLステートメントが使用されるため、QUERYキーワードに値*SQLPARAMETERが指定されます。また、サービス・リストはこのコマンドの一部として使用されます。つまり、このリストを使用して値が返されます。ここでサービス・リストに定義される列は、JSM_COMMAND組み込み関数の作業リストで定義された列と一致しなければなりません。
10.     結果の表示後に、サービスとの接続を解除してJSMを閉じます。