DFU Query SQL

8. Query のソースを抽出するには?

STRQRY のメニューの中の QUERY 管理機能というものは眼にしたことはあるかもしれない。
「管理機能」 という名前が、誤解を招いているのだがこれは *QMQRY という SQLオブジェクトを
生成する機能である。
QUERY 管理機能の RTVQMQRY コマンドを使えば既存の Query/400 オブジェクトから SQL文を抽出できる。
(SELECT文)

【 例 】
RTVQMQRY    QMQRY(MYLIB/MYQRY)    SRCFILE(QTRSRC/QQMQRYSRC)  ALWQRYDFN(*ONLY)

*QMFORM を指定すれば Query/400 の印刷書式も抽出できる。
ただし、STRQMQRY の実行結果が元の QUERY と全く同じかというとそうでもない。
*QMQRY は SAA 準拠のため 編集コードなどをサポートしていないからである。
しかし、*QMQRYSQL としての機能を十分備えている。
SQL の UPDATE 文,INSERT 文,DELETE 文が実行できるのだ。
SQL が導入されていない AS/400 であっても *QMQRY によって動的なデータベースの更新ができる。
しかも RPG よりも圧倒的に速い速度でである。
QUERY と同じ操作でデータベースを更新できる PANEL-WORKER の 「更新QUERY」 は 内部では
この *QMQRY によって更新している。
「更新QUERY」 は あるユーザーの 「QUERY でデータベースを更新できないか?」 の一言で始まった。
今では最も使用されている機能である。