| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| qryff.zip | 2013-01-01 | 7.9 kB | |
| README.TXT | 2013-01-01 | 5.1 kB | |
| QRYFF.PNL | 2013-01-01 | 2.0 kB | |
| QRYFF.SQL | 2013-01-01 | 274 Bytes | |
| QRYFF.CLP | 2013-01-01 | 12.2 kB | |
| QRYFF.RPG | 2013-01-01 | 9.2 kB | |
| QRYFF.CMD | 2013-01-01 | 3.0 kB | |
| Totals: 7 Items | 39.8 kB | 1 |
README
Query for Free (QRYFF)
ABOUT
Query for Free (QRYFF) is an interface to the IBM SQL database engine.
You can do anything that the operating system allows in an interactive
SQL command. This tool allows you to quickly and easily view and
manipulate iSeries data from the command line. You can view, update,
delete, and insert records. You can join files, alter field definitions,
summarize, group, order - anything your imagination and the iSeries
SQL system will allow.
FILES
QRYFF.CLP Control Language Program source member
QRYFF.CMD Command source member
QRYFF.PNL Panel source member for command help
QRYFF.RPG RPG source member
QRYFF.SQL Query Management Query source member
README.TXT This file
INSTALL
Download the file qryff.zip to your PC.
Extract (unzip) the files to a directory on your PC.
Copy the QRYFF.* files to a folder in your iSeries hierarchical file system (HFS).
To do this on my system:
o Go to the Windows "Run" prompt
o Type \\PGMR and press Enter
o Select the folder you want to use to temporarily store the
source members. I am going to use \\PGMR\QUMB\TEMP
Copy the unzipped source members from your PC to the HFS folder of your
choice. Note that you must use a compatible main folder of the HFS. HFS
sub-folders have attributes that determine how data is stored. I recommend
using either QDLS or QUMB as the main folder.
On the iSeries, copy the files from the documents folder to your source
file member. For example:
CPYFRMPCD FROMFLR('TEMP') TOFILE(yourlib/QCLSRC)
FROMDOC(QRYFF.CLP) TOMBR(QRYFF)
CHGPFM FILE(yourlib/QCLSRC) MBR(QRYFF) SRCTYPE(CLP)
TEXT('Query for Free')
CPYFRMPCD FROMFLR('TEMP') TOFILE(yourlib/QRPGSRC)
FROMDOC(QRYFF.RPG) TOMBR(QRYFFR)
CHGPFM FILE(yourlib/QRPGSRC) MBR(QRYFFR) SRCTYPE(RPG)
TEXT('Query for Free')
CPYFRMPCD FROMFLR('TEMP') TOFILE(yourlib/QQMQRYSRC)
FROMDOC(QRYFF.SQL) TOMBR(QRYFF)
CHGPFM FILE(yourlib/QQMQRYSRC) MBR(QRYFF) SRCTYPE(QMQRY)
TEXT('Query for Free')
CPYFRMPCD FROMFLR('TEMP') TOFILE(yourlib/QPNLSRC)
FROMDOC(QRYFF.PNL) TOMBR(QRYFF)
CHGPFM FILE(yourlib/QQMQRYSRC) MBR(QRYFF) SRCTYPE(PNLSRC)
TEXT('Query for Free')
CPYFRMPCD FROMFLR('TEMP') TOFILE(yourlib/QCMDSRC)
FROMDOC(QRYFF.CMD) TOMBR(QRYFF)
CHGPFM FILE(yourlib/QCMDSRC) MBR(QRYFF) SRCTYPE(CMD)
TEXT('Query for Free')
Compile the source. Specify your source and object libraries as desired.
CRTCLPGM PGM(QRYFF) SRCFILE(QCLSRC)
CRTRPGPGM PGM(QRYFFR) SRCFILE(QRPGSRC)
CRTQMQRY QMQRY(QRYFF) SRCFILE(QQMQRYSRC)
CRTPNLGRP PNLGRP(QRYFF) SRCFILE(DEVSRC/QPNLSRC)
CRTCMD CMD(QRYFF) PGM(QRYFF) SRCFILE(QCMDSRC)
HLPPNLGRP(QRYFF) HLPID(QRYFF)
USAGE EXAMPLES
QRYFF SQLEXPR('SELECT * FROM cafiles/msvml100
WHERE vname LIKE ''%ZACKY%''')
MEMBER((MSVML100 M600))
/* Display query to screen */
QRYFF SQLEXPR('SELECT vndno,vname FROM cafiles/msvml100
WHERE vname LIKE ''%ZACKY%''')
MEMBER((MSVML100 M600))
OUTPUT(*PRINT) PRTTXT('Short vendor listing') PAGEWIDTH(80)
/* Print query report */
QRYFF SQLEXPR('SELECT vndno,vname,vstat FROM cafiles/msvml100
WHERE vname LIKE ''%ZACKY%''')
MEMBER((MSVML100 M600))
OUTPUT(*OUTFILE)
/* Write query records to default output file */
QRYFF 'SELECT * FROM qtemp/qryout'
/* Display records in the default output file */
QRYFF 'CREATE TABLE qtemp/slnos
(Ranch FOR COLUMN rhno DECIMAL(3),
Marketing_Count FOR COLUMN mkct DECIMAL(7),
Flock_Count FOR COLUMN flct DECIMAL(7))'
/* Create a file with 3 fields */
QRYFF 'update nzgpl/pphist set phqtno=4
where phqtno=3 and phweyy=2012 and phwemm=9 and phwedd=29'
/* Fix data "on the fly" */
BUGS
There is one small bug in QRYFF. It has to do with quotes in the query
string. On rare occasions a query will complain that the syntax is
wrong or some other error and you can see that you have entered the
command in correctly. The cause is the way CL strings handle quotes
combined with the way the qryff string is passed to the STRQMQRY command.
Occasionally a quote will get "messed up." I catch most of these in the
CL portion of the command but one will occasionally be a problem
THE SOLUTION is simple: Simply add an extra space somewhere in the qryff
string before the first quote. That will usually solve the problem.
For example, if the following query gets an error:
qryff 'select * from ppempms where pmemnm=''SMITH'''
Add a space before the first qoute to get around the bug, like this:
qryff 'select * from ppempms where pmemnm=''SMITH'''
^
space
or this:
qryff 'select * from ppempms where pmemnm=''SMITH'''
^
space
//END