IBMi (AS400) fans only : how to read a flat file with sql embedded
#IBMiSample
It often happens that you have to read all the records of a file.
First of all I create a file, then I manually write some records.
to create a file I write this SQL source:
IPFLSQL.SQL
It often happens that you have to read all the records of a file.
Years ago I would have used the RPG cycle defining the Input/Primary file.
Today, with the introduction of embedded SQL, I would do this:
First of all I create a file, then I manually write some records.
to create a file I write this SQL source:
IPFLSQL.SQL
--
-- RUNSQLSTM SRCFILE(myLib/MySouceFile) SRCMBR(IPFLSQL)
--
-- Generazione tabella
CREATE OR REPLACE TABLE myLib/IPFLI00F (
IIFANN CHARACTER(1) NOT NULL WITH DEFAULT,
IITEXT CHARACTER(25) NOT NULL WITH DEFAULT
)
RCDFMT IPFLI
;
Run IPFLSQL.SQL with
RUNSQLSTM SRCFILE(myLib/MySouceFile) SRCMBR(IPFLSQL) to create the file IPFLI00F.
Then populate IPFLI00F with some records. No matter what you type, just a few records are enough.
Then compile and run
IPFL01.SQLRPGLE
**free
// ******************************************************* // * How to read an entire file from the beginning * // ******************************************************* ctl-opt option(*nodebugio:*srcstmt:*nounref); rDsIIFANN char( 1); rDsIITEXT char(25); end-ds; exec sql set option SRTSEQ = *LANGIDSHR; exec sql set option CLOSQLCSR = *ENDMOD; // preapre the data recordset exec sql declare C1 cursor for select IIFANN, IITEXT from IPFLI00F where IIFANN <> 'A' order by IITEXT for read only; // * PGM start * // ******************************************************* exec sql open C1; exec sql fetch C1 into :RecordDsC1; if sqlcode = 0; // ... do something endif; enddo; exec sql close C1; *inlr = *on; |
Type call ipfl01 (maybe under DEBUG) and check the program.
I use this template whenever I need to read an entire file.
Instead of // ... do something try
dsply %subst(rDsIITEXT:1:10);
That's it.
I appreciate all the comments made on this blog.
That's it.
I appreciate all the comments made on this blog.
Comments
Post a Comment