View Full Version : Abfragen ob Delete(SQL) erfolgreich war
Dominic K.
01-02-18, 09:26
Hallo :),
wie kann ich abfragen ob ein Delete mittels SQL in einem RPG Programm erfolgreich war?
Viele Grüße
Dominic
SQLCODE = 0 => alles OK
SQLCODE = 100 => Zeile nicht gefunden
In der SQLDA (ich glaube SQLERD3, o.ä.) seht dann sogar die Anzahl Sätze.
Dominic K.
01-02-18, 09:40
Ah ok also wie bei einem select oder insert einfach den sqlcode/sqlstatus abfragen - perfekt :)
Danke dir !
Es müsste auch mit
Exec SQL Get Diagnostics :Anzahl_Saetze = ROW_COUNT;
gehen.
In der Variable Anzahl_Saetze steht dann halt die Anzahl Sätze drin, welche gelöscht worden sind
Gruß
Ronald
In der SQLDA (ich glaube SQLERD3, o.ä.) seht dann sogar die Anzahl Sätze.
SQLCA (Communications Area) und NICHT SQLDA (Descriptor Area)
Außerdem heißt das Sub-Field in der SQLCA SQLER3 oder SQLERR(D3)
Birgitta
@Birgitta: Danke für die Korrektur.
Warum auf Diagnostik zusätzliche Abfragen machen wenn ich schon alles im Speicher habe?
Warum auf Diagnostik zusätzliche Abfragen machen wenn ich schon alles im Speicher habe?
Weil mich an eingen STellen schon interesiert, wieviele Sätze gelöscht/eingefügt worden sind.
Oder steht das auch in der SQLCA?
Genau:
SQLER3 enthält manchmal sogar die Anzahl zu erwartenden Sätze eines Selects.
Ansonsten immer das Ergebnis auch einer Mehrfachoperation (Delete, Update, Insert..Select).
Teilweise können auch Ergbnisse der letzten Aktion eines Prozeduraufrufes verfügbar sein.
Übrigens bereits seit V2R1, als ich mit SQL für DB2 angefangen habe.
Wichtig z.B. bei Delete/Update wenn ich nur 1 Satz erwartet habe und es dann doch mehr geworden sind kann ich im Falle der Aufzeichnung noch schnell einen Rollback machen;-).
OKay.
Ich habe bisher immer nur
DoW sqlcod >= 0 and sqlcod <= 100
abgefragt, bzw
If sqlcod <> 0;
Leave;
EndIf;
... Das kommt davon, wenn man mal Beispiele nur übernommen hat und sich nicht mit dem "Rest" beschäftigt...
Gruß
Ronald