1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

(QA) RDiでReplace(*YES)でテーブル(PF)をCRTPFしたい

Last updated at Posted at 2024-06-19

Q.RDiでテーブルのコンパイルをする際、既に存在している場合、PDMと同様に既存テーブルを削除、コンパイルできないか?

というご質問です。

RPG,COBOL,etc.のコンパイルの場合、コンパイルコマンドに既存オブジェクトが存在する場合、REPLACEしていいか?のパラメーターがあります。が、テーブル、ビュー作成コマンド(CRTPF, CRTLF)にはありません。

PDMで既にテーブルがある場合にコンパイルすると、、

下記のような確認画面が出て、リプレースしていいか(既存テーブルを削除していいか?)聞かれます。

image.png

これはCRTPF, CRTLFコマンドがしているのではなくて、PDMでコンパイルコマンドを呼び出した際、PDMが出してくれてるんですね。

RDiでPDMと同様な動作ができるか?

RDiでコンパイルするにはソースメンバーを右クリックして、コンパイル または コンパイル(プロンプト) を選択します。
下記はプロンプトの例です。画面上は途中で切れてしまっていますが、スクロールするとすべてのコンパイルパラメーターを指定(変更)可能です。

image.png

・・がここには既存オブジェクトの置換YES(NO)はありません。当然ですね…

代替案の一つは、RDiではIBM i OSコマンドなどをユーザーで登録する機能があります。これにDLTFコマンドを登録しておけば、5250など別なコマンドラインを起動せずに置換したいテーブル(ビュー)を削除することはできます。

下記はユーザーコマンドを作成している例です。ソースを右クリック→コンパイルコマンドの処理 を選択すると、ユーザー独自のコマンドを登録できます。パラメーターの組み立てにはアシスト機能もあり、使いやすいとは思います。

image.png

上記コマンドを登録すると、右クリックで呼び出せます。

image.png

この方法でも一先ず代替できますが、ファイル削除、コンパイルと2つコマンド投入が必要になってしまいます。

RDi PDMパースペクティブではできないか?

RDiには 5250 PDM環境をエミュレートするPDMパースペクティブという機能が追加されています。(RDi V9.6.0.4以降から)

ウィンドウのパースペクティブを開くから PDM を選択します。無い場合は その他からすべてのパースペクティブを検索すれば見つかると思います。

image.png

こんな画面です。
image.png

① DDS(PF)を編集する際は、下記のように左下の窓で、編集したいソースやライブラリー名などを入力します。ここはPDMと同様です。

② 右下に①で指定したオブジェクトが表示されます。たとえば 2 (PDMのエディター起動)を選択すると、画面上部にソースが読み込まれ編集モードで開きます。

image.png

②のオプションOptionに 14 コンパイルを指定してみますと・・

無効なオプション(Invalid Option 14)となってしまいました。。どうやらPDMのパネル(今回だと既存ファイルを置換する YES/NO )は使えないようです。。
image.png

他に方法はないか?

RDiの中を調べたのですができそうなものはありませんでした・・

RDi以外ですと、下記のACS SQLスクリプトの例に CREATE or REPLASE というのが見つかりました。

thumbnail_image.png

これですと既存テーブルが存在する場合削除&コンパイルを実行できそうです。
ACS SQLスクリプト実行画面 -> 編集 -> 例 -> 例から挿入

CREATE OR REPLACE TABLE table1 (column1 INTEGER NOT NULL, column2 VARCHAR(100) ALLOCATE(20));
1
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?