PDA

View Full Version : Trigger Datensatzsprerre



andwaw
28-09-07, 10:40
Hallo ich habe folgendes Problem
Ich habe eine Datenbank in die neue Datensätze geschrieben werden. Wenn ein satz geschrieben wird wird ein trigger in form eines ile rpg's geöffnet dieses ruft dann ein clp auf mit den inhalten des geschriebenen datensatzes per parameter. Danach möchte ich allerdings ein rpg laufen lassen, dass ein update auf den datensatz macht. Das geht nicht weil das ile rpg den datensatz noch im zugriff hat. Das Triggerprogram ist nicht von mir und von ile versteh ich nicht sonderlich viel.
Aufjedenfall ist die datenbank datei als Datenstrucktur eingelesen und nicht in einer F zeile. Wie schließe ich dann den zugriff auf die datenbank in dem ILE rpg damit er wieder frei ist und ich ein update auf den datensatz machen kann?

ich hoffe ihr habt einigermaßen verstanden wo mein problem liegt mfg Andreas =)

Fuerchau
28-09-07, 10:55
Dies geht so überhaupt nicht, da hier sonst eine für RPG unzulässige Rekursion geschieht. Der 2. Update würde den Trigger wieder aufrufen.

Hierfür benötigst du einen BEFORE-Insert-Trigger mit ALWREPCHG(*YES), so dass das Immage direkt geändert werden kann.

Der Trigger übergibt ja den Puffer an das CLP, dieses modifiziert den Inhalt und kehrt zum Trigger zurück.
Anschließend wird der Insert mit dem neuen Inhalt durchgeführt.

andwaw
28-09-07, 11:27
dankeschön funktioniert wunderbar und seltsamerweise ist die performance sogar besser oO

naja aufjedenfall danke