Anmelden

View Full Version : SQLRPG Delete im Select



svit
26-08-14, 15:50
Hallo *all,
besteht die Möglichkeit unter SQLRPG-Free in einer SELEct- Schleife den gelesenen Satz sofort löschen?
Bsp.:
exec sql set option naming = *SYS,
commit = *NONE;
exec sql DECLARE Tabelle1 CURSOR FOR
select * from Tabelle ;
exec sql open Tabelle1;
if SQLCODE = 0;
clear outResponse;
exec sql FETCH Tabelle1 INTO :lclTabelleBuffer;
dow SQLCODE = 0 and i < 100;
i += 1;
outResponse.Data(i) = lclTabelleBuffer;
delete Tabelle1;
exec sql FETCH Tabelle1 INTO :lclTabelle1Buffer;

ENDDO;

B.Hauser
26-08-14, 17:26
Ja, in dem Du where CURRENT OF zu Deinem Delete Statement hinzufügst.


Exec SQL Delete From Tabelle Where Current Of Tabelle1;

Du solltest übrigens NIE auf SQLCODE = 0 abfragen, sondern immer SQLCODE < *Zeros für Fehler und SQLCODE = 100 für nicht gefunden. Manchmal wird eine Warnung (warum auch immer ) ausgegeben SQLCODE > 0, der Datensatz bzw. die Daten kommen trotzdem korrekt an.