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 *

関連記事

Git .gitignoreが利かないというかおかしい件

ブログなので皆さまのお役にたてば幸いですが、あくまで自分の忘備録なので、昔話も含めて書いております。ご了承ください。 環境は、 開発環境は自席PC(ローカル) Windows10PC XAMPP7.2 …

AS400/IBMi View(ビュー)を作成したり削除したり一覧表示する

素人の備忘録なので、あまりよく解っていませんが、ビューの作り方です。 なんでViewを作る必要があるのかすら不明です。知ってる人は逆にコメント欲しいです。   思っていることは、論理ファイル …

Windows Defender があれば市販のセキュリティソフトはいらないらしい

今回はパソコンのセキュリティソフトについての話です。これまた自己責任でお願いします。 しかもこれは聞いた話を記事にしているだけなので、真偽は確認しておりません。   私のいる会社 私のいる会 …

AS400/IBMi シンクライアントを132画面対応にする設定

シンクライアントとは必要最低限の機能しかもたず、処理はすべてサーバ側でまかなうようにする端末のこと。 PCのクライアントアクセスとは使い勝手が少々異なるので設定に困った。 エミュレーションタイプの画面 …

XAMPPのShellを開けない。0xc0000142

Windows10パソコンにXAMPPを入れて、Shellを起動したら下記のようなエラーが出た。   アプリケーションエラー。0xc0000142。 読めない英語だけど、解決法らしきものを見 …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に