Live Scores
Shareware
Movie Stars
in
System Programming
Progamming
(Entire Site)
Questions and answers to issues related to Microsoft: Windows, Applications, Development, Hardware, Server, Internet Protocols, Database, Exchange .
»
Progamming
»
System Programming
»
AS400 CL programming
AS400 CL programming
Is it possible to write to a database physical file within a CL program, using data created through a variable e.g. current date value. I wish to write the &MSGDTA variable to a file for future processing.
PGM
DCLF FILE(BGUNDRY/TESTDUMM)
DCL VAR(&ACTYEAR) TYPE(*CHAR) LEN(2)
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(9)
DCL VAR(&QDATE) TYPE(*CHAR) LEN(6)
DCL VAR(&DAY) TYPE(*CHAR) LEN(2)
DCL VAR(&MONTH) TYPE(*CHAR) LEN(2)
DCL VAR(&YEAR2003) TYPE(*CHAR) LEN(4) +
VALUE('2003')
DCL VAR(&YEAR2004) TYPE(*CHAR) LEN(4) +
VALUE('2004')
RTVSYSVAL SYSVAL(QDATE) RTNVAR(&QDATE) /* DDMMYY */
CHGVAR VAR(&ACTYEAR) VALUE(%SST(&QDATE 5 2))
IF ((&ACTYEAR) *EQ '03') THEN(GOTO CALC1)
ELSE (GOTO CALC2)
CALC1: CHGVAR VAR(&DAY) VALUE(%SST(&QDATE 1 2))
CHGVAR VAR(&MONTH) VALUE(%SST(&QDATE 3 2))
CHGVAR VAR(&MSGDTA) VALUE('D' *CAT &YEAR2003 *CAT &MONTH *CAT &DAY)
GOTO SNDMSG
CALC2: CHGVAR VAR(&DAY) VALUE(%SST(&QDATE 1 2))
CHGVAR VAR(&MONTH) VALUE(%SST(&QDATE 3 2))
CHGVAR VAR(&MSGDTA) VALUE('D' *CAT &YEAR2004 *CAT &MONTH *CAT &DAY)
SNDMSG: SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSGDTA)
ENDPGM
***************** End of data **************************
**********
****
Solution: AS400 CL programming
I use the following trick when I need data file manipulation from CL.
1. Write a RPG program called EXECSQL that executes dynamic SQL statements.
2. Write a command called EXECSQL to pass a SQL statement to the program.
Now, you can use a CL command like this:
chgvar &insert ('insert into yourfile values(''' || &MSGDTA || ''')'
execsql stmt(&insert)
Full source is at
http://search400.techtarge
t.com/tip/
1,289483,s
id3_gci864
804,00.htm
l?FromTaxo
nomy=%2Fpr
%2F2f9
ShalomC