Back in the 20th Century, Query was a handy tool for… well, writing ad-hoc queries. The form-filling interface is remarkably simple – it really can be used by anyone – and rather inflexible. Now, of course, we have SQL – which is a lot more powerful – and a collection of third-party tools to help with the building your query.
But Queries exist. Some of them are on menus. They must be destroyed!
Here’s an approach:
RTVQMQRY QMQRY(querylib/queryname) SRCFILE(sqllib/QSQLSRC) ALWQRYDFN(*ONLY)
The Retrieve Query Management Query (RTVQMQRY) command allows you to retrieve Structured Query Language (SQL) source from a query management query (QMQRY) object. The source records are placed into an editable source file member.
But you don’t have to have a QMQRY object to use this command. ALWQRYDFN allows you to specify whether query information is taken from a query definition (QRYDFN) object when a query management (QMQRY) object cannot be found. There are three possibilities:
- *NO: Never use the QRYDFN. If the QMQRY object doesn’t exist, the command will fail
- *YES: If the QMQRY object doesn’t exist, use the QRYDFN
- *ONLY: Ignore the QMQRY object and just use the QRYDFN
Once the command is executed, you will have a member (called
queryname) in library/member
sqllib/QSQLSRC, based on query
And now your options are endless.