Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


Delphi/400 コンポーネント リファレンス【TCmd400】

『コンポーネント リファレンス』シリーズでは、Delphi/400の
ネイティブコンポーネントについて1記事1コンポーネントずつ解説します。

本記事では、TCmd400について解説します。


概要

  • 継承
    • TObject > TPersistent > TComponent > TCmd400
  • ユニット
    • SCDCmd
  • 概要
    • TCmd400クラスは、パラメータが返されるAS/400コマンドを起動するために使用します。
    • プロパティエディタによって、コマンドのさまざまな戻り値を定義することができます。この定義は、Delphiでのプログラミングによって行うこともできます。
    • コマンドの実行後は、返されたパラメータを抽出することができます。

プロパティ

  • AS400
    • TAS400コンポーネントを指定(必須)
    • AS400 プロパティは、オブジェクト(コマンドやプログラムなど)が格納されている IBM i を示します。
  • CommandLine
    • TStringList型
    • このプロパティでは、実行するコマンド行を指定します。コマンドの戻り値には次の方法で名前をつけなければなりません。
      • P.1 :1番目の戻り値
      • P.2 :2番目の戻り値
      • P.n :n番目の戻り値
    • 戻り値は、コマンド行に順番に定義しなければなりません。
      • 例1)RTVSYSVAL SYSVAL(QDATE) RTNVAR(&P.1)
      • 例2)RTVJOBA JOB(&P.1) USER(&P.2) NBR(&P.3)
      • 後述のParamsValueは戻り値としてしか使用できないため、
        コマンドの引数はCommandLineに直接記述する必要があります。
    • すべてのパラメータはParamsプロパティで定義しなければなりません。
    • IBM i 側の仕様で、コマンドは250文字以内でなければなりません。
  • LibraryName
    • String型
    • LibraryName プロパティは、IBM i オブジェクト(呼び出すプログラム)があるライブラリを指定するために使用します。
      未指定の場合、*LIBLが自動指定されます。
  • Params
    • TStringList型
    • Paramsプロパティは、IBM i プログラムのパラメータを定義するために使用します。
    • 設計モードでは、ポップアップウィンドウを使用してパラメータをビジュアルに定義できます。
      各パラメータは[新規パラメータ]パネル内で適切な属性を設定することによって定義され、[追加]ボタンを押すことによってパラメータリストに挿入されます。
    • プログラムが使用するすべてのパラメータには定義が必要です。選択された各パラメータは、[変更]ボタンを押して変更を加えたり、[削除]ボタンを押してパラメータのリストから削除することができます。
    • それぞれのパラメータは、以下のサブプロパティでも読み書きすることができます。
      • ParamType(Array of Char)
         パラメータの型を定義および取得するために使用します。
         ParamType[0] は、第1パラメータの型を識別します。
      • ParamDigits(Array of Integer)
         パラメータの最大の長さを定義および取得するために使用します。
         ParamDigits[0] は、第1パラメータの長さを識別します。
      • ParamDecimals(Array of Integer)
         パラメータの小数部の桁数を定義および取得するために使用します。
         ParamDecimals[0] は、第1パラメータの小数部の桁数を識別します。
  • Value
    • Array of String型
    • Value プロパティは、パラメータの値を定義および取得するために使用します。
      Value[0] は、第1パラメータの値です。
    • TCmd400のValueは戻り値を受け取る目的で使用するため読み取り専用です。
    • TCmd400では、以下の3種類のパラメータを指定可能です。
      • A:文字(*CHAR)
      • N:パック10進数(*DEC)※「P」も指定可能
      • L:論理型(*LGL)※長さは1固定

 

(設計画面でパラメータを指定する場合のダイアログ)

メソッド

  • AddParam
    • 引数:①ParamType(Char) ②ParamDig(Integer) ③ParamDec(Integer)
    • 戻値:なし
    • AddParam メソッドは、①型②長さ、および③小数部の桁数を指定することによって
      プログラムパラメータリストにパラメータを追加するために使用します。
    • 使用できるパラメータの種類は、上記のValueプロパティに記載の3種類です。
      • ‘L’ 型の場合、最後の2つのパラメータは0に設定されます。
        ‘A’ 型の場合、最後のパラメータは0に設定されます。
  • ClearParams
    • 引数、戻値:なし
    • ClearParams メソッドは、パラメータのリストを消去するために使用します。
  • Execute
    • 引数・戻値:なし
    • Execute メソッドは、要求された IBM i コマンドを発行します。
      • メモ : IBM i プログラムがループに入っているか、エラーまたはモニターされないメッセージを含んでいる(MSGWやLCKWになっている)場合、Delphi プログラムはハングしてしまいます。
        プロセスを終了するには、IBM i 上のプログラムの実行を終了しなければなりません。
    • エラーが発生した場合、このメソッドは ECO400Error 例外を生成します。

 

イベント

  • BeforeExecute
    • BeforeExecute イベントに追加されたコードは、コマンドを実行する直前に実行されます。
    • Boolean型パラメータCancelをTrueに設定すると、コマンドの実行が取り消されます。
  • OnExecute
    • OnExecuteイベントに追加されたコードは、コマンドを実行した直後に実行されます。

 

サンプルプログラム

Delphi/400 開発版をインストールしている場合、

C:\co4XX\DelphiXX\Samples\Cmd400

の場所に、TCmd400のサンプルプログラムが同梱されています。
このサンプルでは、接続したIBM i のモデルとシリアルを取得して表示します。

(「XX」部分はバージョンによって異なります。10.2 Tokyoの場合は「24」です。)

 

関連リンク

 

※本記事に記載のヘルプは、過去の製品マニュアルからの抜粋となります。
 貴社にてご利用のバージョンにおける設定などでご不明な点がございましたら、
 サポート窓口までお問い合わせ下さい。