STRQRY のメニューの中の QUERY 管理機能というものは眼にしたことはあるかもしれない。
「管理機能」 という名前が、誤解を招いているのだがこれは *QMQRY という SQLオブジェクトを
生成する機能である。
QUERY 管理機能の RTVQMQRY コマンドを使えば既存の Query/400 オブジェクトから SQL文を抽出できる。
(SELECT文)
- RTVQMQRY … SQL文を QUERY/400 から抽出
- CRTQMQRY … *QMQRY オブジェクトを生成(コンパイル)
- STRQMQRY … *QMQRY オブジェクトを実行
【 例 】
RTVQMQRY QMQRY(MYLIB/MYQRY) SRCFILE(QTRSRC/QQMQRYSRC) ALWQRYDFN(*ONLY)
*QMFORM を指定すれば Query/400 の印刷書式も抽出できる。
ただし、STRQMQRY の実行結果が元の QUERY と全く同じかというとそうでもない。
*QMQRY は SAA 準拠のため 編集コードなどをサポートしていないからである。
しかし、*QMQRY は SQL としての機能を十分備えている。
SQL の UPDATE 文,INSERT 文,DELETE 文が実行できるのだ。
SQL が導入されていない AS/400 であっても *QMQRY によって動的なデータベースの更新ができる。
しかも RPG よりも圧倒的に速い速度でである。
QUERY と同じ操作でデータベースを更新できる PANEL-WORKER の 「更新QUERY」 は 内部では
この *QMQRY によって更新している。
「更新QUERY」 は あるユーザーの 「QUERY でデータベースを更新できないか?」 の一言で始まった。
今では最も使用されている機能である。