『コンポーネント リファレンス』シリーズでは、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番目の戻り値
- 戻り値は、コマンド行に順番に定義しなければなりません。
- すべてのパラメータは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パラメータの小数部の桁数を識別します。
- ParamType(Array of Char)
- 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に設定されます。
- ‘L’ 型の場合、最後の2つのパラメータは0に設定されます。
- ClearParams
- 引数、戻値:なし
- ClearParams メソッドは、パラメータのリストを消去するために使用します。
- Execute
- 引数・戻値:なし
- Execute メソッドは、要求された IBM i コマンドを発行します。
- メモ : IBM i プログラムがループに入っているか、エラーまたはモニターされないメッセージを含んでいる(MSGWやLCKWになっている)場合、Delphi プログラムはハングしてしまいます。
プロセスを終了するには、IBM i 上のプログラムの実行を終了しなければなりません。
- メモ : IBM i プログラムがループに入っているか、エラーまたはモニターされないメッセージを含んでいる(MSGWやLCKWになっている)場合、Delphi プログラムはハングしてしまいます。
- エラーが発生した場合、このメソッドは ECO400Error 例外を生成します。
イベント
- BeforeExecute
- BeforeExecute イベントに追加されたコードは、コマンドを実行する直前に実行されます。
- Boolean型パラメータCancelをTrueに設定すると、コマンドの実行が取り消されます。
- OnExecute
- OnExecuteイベントに追加されたコードは、コマンドを実行した直後に実行されます。
サンプルプログラム
Delphi/400 開発版をインストールしている場合、
C:\co4XX\DelphiXX\Samples\Cmd400
の場所に、TCmd400のサンプルプログラムが同梱されています。
このサンプルでは、接続したIBM i のモデルとシリアルを取得して表示します。
(「XX」部分はバージョンによって異なります。10.2 Tokyoの場合は「24」です。)
関連リンク
- 【コンポーネントリファレンス | Migaro. Tips】
- これまでにご紹介してきた、Delphi/400のネイティブコンポーネント一覧です。
※本記事に記載のヘルプは、過去の製品マニュアルからの抜粋となります。
貴社にてご利用のバージョンにおける設定などでご不明な点がございましたら、
サポート窓口までお問い合わせ下さい。