Du kannst auch mit SQL gezielt auf Daten zugreifen und dir nur das rausholen, was Du brauchst.
File-Referenz-Variablen kannst Du mit SQL-Funktionen genau wie alphanumerische Felder behandeln, d.h. mit POSSTR oder LOCATE kannst Du positionieren und suchen, mit SUBSTR kannst Du Daten gezielt herauslesen und dann in eine (kürzere) Host-Variable ausgeben.
... und Du bist auch nicht auf 16MB beschränkt, sondern kannst die ganzen (möglichen) 2GB verarbeiten. (Die Daten werden überigens nicht kopiert)
Beispiel:
Code:
DCL-S MyClobFile SQLTYPE(CLOBFILE) CCSID(1208);
...
MyCLOBFile_Name = %Trim(ParIFSFile);
MyCLOBFile_NL = %Len(%Trim(MyCLOBFile_Name));
MyCLOBFile_FO = SQFRD; //Read Only
For Index = 1 to 15;
Start = (Index-1) * RowLen + 1;
Exec SQL Set :MyText = Substr(:MyCLOBFile, :Start, :RowLen);
Dsply MyText;
If SQLCODE = 100 or SQLCODE < *Zeros
or %Len(%Trim(MyText)) = *Zeros;
Leave;
EndIf;
EndFor;
Birgitta
Bookmarks