Frag nochmal nach! Einen Cursor zurückgeben gibt es eigentlich nicht. Ich vermute es wird ein Result Set zurückgegeben.
Wenn das so ist, musst Du die folgenden Schritte machen:
1. Definiere in Deinem Programm einen Result-Set-Locator
2. Rufe Deine Stored Procedure aufCode:DCL-S YourLocator SQLTYPE(RESULT_SET_LOCATOR);
3. Weise die Result Sets den Result-Set-Locatoren mit ASSOCIATE zuCode:Exec SQL CALL StoredProcedure(:Parm1, ... :ParmN);
4. Deklariere einen Cursor für jeden Result-Set-Locator:Code:Exec SQL Assosiate Result Set Locator(:YourLocator) With Specific Procedure SpecificProcedureName;
5. Der Rest ist wie bei jedem anderen Cursor, d.h. Fetch und wenn alles verarbeitet ist muss der Curosor (YourCsrName) geschlossen werden.Code:EXEC SQL Allocate yourCsrName Cursor For Result Set :YourLocator;
Noch eine Anmerkung, Arbeit mit Lokatoren/Locators muss unter Commitment Control erfolgen!Code:Exec SQL Fetch Next from YourCsrName into :DS; Exec SQL Close YourCsrName;
Birgitta
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks