IT関連

AS400/IBMi QRYプログラムからSQL文を生成

投稿日:2019年3月15日 更新日:

あまり意味ないかもしれないけど、備忘録。

使用しているQRY/400の定義からSQL文を逆算して出力する方法。

 

まずSQLソースファイルを作る。逆算したSQL文を置く場所ですね。

CRTSRCPF FILE(HOGELIB/QSQLSRC) RCDLEN(112) IGCDTA(*YES) TEXT(‘****’)

これでQRPGSRCやQCLSRCなどと同じようにQSQLSRCが出来る。まぁ名前は何でもいいのでしょうけど、とりあえずソースファイルですね。

 

後はRTVQMQRYコマンドをF4でプロンプトを開いて、パラメータを埋めていく。

 

QUERY管理プログラム = 作成したQRY名
ライブラリー     = QRYを保存しているライブラリ
ソースファイル    = QSQLSRC
ライブラリー     = HOGELIB
QRYDFNからの・・  = *ONLY

 

で実行すると、QSQLSRCにソースメンバーとしてテキストが生成される。

これ大丈夫かなぁと思うようなSQL文があるけど、まぁいいか。

 

さらにCLを組んでライブラリ内の全QRY定義を変換

当たり前の話だけど、DSPOBJDを使ってQRY定義の一覧をファイル出力してそれをCLでREADしながらRTVQMQRYすれば全てのQRY定義を一気に変換できる。

 

QRY定義を出力する方法は

DSPOBJD OBJ(HOGELIB/*ALL) OBJTYPE(*QRYDFN) OUTPUT(*OUTFILE) OUTFILE(HOGELIB/QRYLST)

これでHOGELIBのQRY定義を、HOGELIBの中にQRYLSTとしてファイル出力することができる。

 

出力したファイルをこんな感じで回す

PGM

DCLF FILE(HOGELIB/QRYLST)

READ: RCVF RCDFMT(QLIDOBJD)

MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(END))

RTVQMQRY QMQRY(HOGELIB/&ODOBNM) SRCFILE(HOGELIB/QSQLSRC) ALWQRYDFN(*YES)

GOTO READ

END:

ENDPGM

CPF0864はファイルが読めなかった場合に受け取る。&ODOBNMは出力したファイルの中にあるオブジェクトのフィールド名の変数。

スポンサーリンク




スポンサーリンク




-IT関連
-, , ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

Visual Studio Code ショートカット Mac/Windows

VSCodeの便利なショートカットの備忘録です。   ★別ウインドウを開く 「Ctrl」+「Shift」+「N」   ★ファイルの新規作成 Web開発ではエディタを開いているときに …

WindowsからMacに切り替えてお仕事をしよう

会社が私にMacBookProを買ってくれたので早速使おうと思ったけど、ずっと仕事でWindowsを使っていた私にとっては、かなり使いにくい。 といって開かずにいたら、かれこれ半年が経過してしまった。 …

Laravel Viewの第二引数 連想配列の渡し

私は知らなかったので忘備録。   これと

  これは [crayon-5f6b72229229e247530504 …

Atomエディタ コメントの色を変更する

Atomのコメントの色を変更する方法です。   Atomのコメントはデフォルトでは灰色で見にくいので変更したほうが無難です。目が疲れます。   調べてみるとやり方は簡単に出てきたの …

キャノン えらんでマイプリントが出ない

昨日設定していてハマったのだが、キャノンの複合機でえらんでマイプリントを設定していて、いくらPCで印刷をかけてもうんともすんとも言わないといった話。 複合機の機種は忌まわしきC5250Fという名前。 …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に