|
Rob:
There are a couple ways to coerce CL into "writing" to disk -- I won't count QM
query since you're using it.
However, try making these changes:
Assuming four CHAR columns, for your QM SQL --
INSERT INTO OUTQFIX
VALUES(&q&OUTQFIX_OUTQ&q, &q&OUTQFIX_AUTHLIST&q, &q&OUTQFIX_CHANGED&q,
&q&OUTQFIX_MSGID&q)
And to your STRQMQRY command:
STRQMQRY QMQRY(OUTQFIX) +
SETVAR((OUTQFIX_OUTQ &OUTQFIX_OUTQ) +
(OUTQFIX_AUTHLIST &OUTQFIX_AUTHLIST) +
(OUTQFIX_CHANGED &OUTQFIX_CHANGED) +
(OUTQFIX_MSGID &OUTQFIX_MSGID) +
('q' '''') +
)
That shifts the burden for quoting mostly to the SQL statement. The CL merely
needs to pass a single quote into the &q substitution variable that's used
wherever needed. You can vary that in numerous ways, but you probably can get
the idea. Too bad it isn't just a list option for the SETVAR() parm.
Consider this possibility if you have QShell installed:
call QZDFMDB2 ( +
'INSERT INTO OUTQFIX VALUES(''' *cat +
&OUTQFIX_OUTQ *cat ''',''' *cat +
&OUTQFIX_AUTHLIST *cat ''',''' *cat +
&OUTQFIX_CHANGED *cat ''',''' *cat +
&OUTQFIX_MSGID *cat '')' +
)
And also note that QLGSORT will take an input buffer as a parm and output to a
sorted outfile. The input buffer in your case would simply be a CL variable
with this value:
[ &OUTQFIX_OUTQ *cat &OUTQFIX_AUTHLIST *cat &OUTQFIX_CHANGED *cat
&OUTQFIX_MSGID ]
The buffer can be defined for one record at a time or multiple records.
Tom Liotta
midrange-l-request@xxxxxxxxxxxx wrote:
> 6. Can CL write to a disk file (rob@xxxxxxxxx)
>
>Is there a command like SNDF that will work to a disk file? V5R3.
>
>Trying workarounds like
> CHGVAR VAR(&OUTQFIX_OUTQ) VALUE('A')
> CHGVAR VAR(&OUTQFIX_AUTHLIST) VALUE('A')
> CHGVAR VAR(&OUTQFIX_CHANGED) VALUE('A')
> CHGVAR VAR(&OUTQFIX_MSGID) VALUE('A')
> STRQMQRY QMQRY(OUTQFIX) +
> SETVAR((OUTQFIX_OUTQ &OUTQFIX_OUTQ) +
> (OUTQFIX_AUTHLIST &OUTQFIX_AUTHLIST) +
> (OUTQFIX_CHANGED &OUTQFIX_CHANGED) +
> (OUTQFIX_MSGID &OUTQFIX_MSGID))
>Which executes
>INSERT INTO OUTQFIX
>VALUES(&OUTQFIX_OUTQ, &OUTQFIX_AUTHLIST, &OUTQFIX_CHANGED,
> &OUTQFIX_MSGID)
>But I get stupid messages like:
>CALL ROB/TESTFIX
> 215 - STRQMQRY QMQRY(OUTQFIX) SETVAR((OUTQFIX_OUTQ 'A')
> (OUTQFIX_AUTHLIST 'A') (OUTQFIX_CHANGED 'A') (OUTQFIX_MSGID 'A'))
>Column A not in specified tables.
>RUN QUERY command failed with SQLCODE -206.
>
>And I'm just plain disgusted playing the apostrophe game.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.