Ich habe eine Routine, die aus einer IFS-Datei ein SQL Statement liest. Dies ist ein Select, der mit XMLDOCUMENT und XMLROW eine XML-Struktur aufbaut. Das Ergebnis sind mehrere Rows. Diese sollen in eine IFS-Datei weggeschrieben werden. Funktioniert im Grundsatz auch, es kommt aber nur ein Satz in der Datei an. Baue ich keine Schleife um den Fetch, dann ist es der erste, mit Do-Schleife der letzte. Ich seh also zwar was passiert, aber meinen Fehler nicht...
Tips welcome!
Code:// RunSQL Subroutine // ----------------- begsr RunSQL; // Prepare SQL from SQL-String EXEC SQL PREPARE selectstm FROM :sqlstring; // Declare Cursor for prepared SQL EXEC SQL DECLARE INXML CURSOR FOR selectstm; // Open Cursor EXEC SQL OPEN INXML; dow sqlcod = 0; // Fetch SQL Data into XML-Clob Locator EXEC SQL FETCH NEXT FROM INXML INTO :IXMLLoc; if sqlcod <> 0; leave; endif; // Store Data in Host-Variable EXEC SQL SET :IXMLDta = :IXMLLoc; // Store Data in IFS-File EXEC SQL SET :IXMLDoc = :IXMLLoc; enddo; // Close SQL-Cursor EXEC SQL CLOSE INXML; // Free Clob-Locator Space EXEC SQL FREE LOCATOR :IXMLLoc; endsr;
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks