@Dieter Urlaub schon vorbei ?

@Joe

Ich muss noch mal auf meinen obigen Beitrag hinweisen.

Sehr viel schneller ist das ganze, wenn man die ganzen If's einfach wegläßt und mit einer Mehrfachstruktur arbeitet (OCCURS 2) und ohne Prefix.

Warum ?

Vor dem Chain auf OCCURS 2 umschalten, RPG füllt automatisch alle Felder, die aber nicht verwendet werden.
Auf OCCURS 1 zurückschalten und den Update durchführen.

Anstelle von OCCURS kann man ja auch die gesamte Struktur übertragen.
Ein Zeitvorteil ist Ihre Methode nicht, da ja sowieso ein Update des gesamten Immage stattfindet.

Wie entgehst du der Gefahr des konkurierenden Updates ?!?!

Zwischen dem CALL GET und CALL UPD kann ja einige Zeit liegen.
Also müsstest du das aktuelle Immage (CHAIN) mit dem vorher gelesenen Immage (aus GET) vergleichen und nur wenn dieses noch gleich ist, deinen Update durchführen, ansonsten brauchst du eine Fehlerbehandlung, von wegen "Daten zwischenzeitlich geändert" oder so.

Und nun nochmal zu SQL:

Natürlich kannst du mittels CASE Abfragen durchführen, aber um es RPG-Like zu gestalten musst du auf jeden Fall einen SELECT vorher durchführen (analog CHAIN) um überhaupt vergleichen zu können.

Übrigens: Ohne CMTCTL wirst du Probleme mit konkurierenden Updates erhalten, wenn du den Datensatz beim Lesen nicht sperrst (SELECT .... FOR UPDATE ............... UPDATE CURRENT OF )