Anmelden

View Full Version : nächste Satznummer ermitteln



Juergen_G
11-07-07, 10:42
Hallo Gurus,

welche ist die schnellste Möglichkeit eine Satznummer zu ermitteln:
- Nummer im Datenbereich lesen, erhöhen und neue Nummer zurückschreiben
- Nummer in einem Feld / Tabelle erhöhen

Ich benötige eine schnelle Möglichkeit um in einen Triggerprogramm die eine eindeutigen Primery Key zu erzeugen. Diese Datensätze werden später wieder gelöscht so muss ich die Nummer wo extern speichern.
Da ein Datum + Uhrzeit in Millisekunden scheinbar nicht ausreicht - wurde ja hier schon diskutiert: http://www.newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/6989-rpg-zeit-mit-millisekunden.html

Eventuell gibt es ja auch eine andere Lösung

Danke im voraus für eure Antworten

Fuerchau
11-07-07, 11:24
Die schnellste und einfachste in (ILE)RPG ist sicherlich die DTAARA.

Wichtig:

LOCK
IN
ADD 1
OUT
UNLOCK

Wobei ggf. der Out schon einen Unlock macht.
Ansonsten gehts noch mit SQL und einem Generator, was aber sicherlich etwas langsamer ist.

Juergen_G
11-07-07, 11:56
Danke für die rasche Antwort

BenderD
12-07-07, 18:25
Hallo,

wenn die Dinger nicht lückenlos sein müssen, dann ist eine Datei und Blockweises ziehen das non plus ultra.

mfg

Dieter Bender

PS: das manchmal angepriesene GENUUID ist auf Multiprozessor Maschinen auch nicht eindeutig und der neuen SQL Function in V5R4 traue ich ebenfalls nicht über den Weg, das hört sich nach GENUUID an.



Hallo Gurus,

welche ist die schnellste Möglichkeit eine Satznummer zu ermitteln:
- Nummer im Datenbereich lesen, erhöhen und neue Nummer zurückschreiben
- Nummer in einem Feld / Tabelle erhöhen

Ich benötige eine schnelle Möglichkeit um in einen Triggerprogramm die eine eindeutigen Primery Key zu erzeugen. Diese Datensätze werden später wieder gelöscht so muss ich die Nummer wo extern speichern.
Da ein Datum + Uhrzeit in Millisekunden scheinbar nicht ausreicht - wurde ja hier schon diskutiert: http://www.newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/6989-rpg-zeit-mit-millisekunden.html

Eventuell gibt es ja auch eine andere Lösung

Danke im voraus für eure Antworten

camouflage
18-07-07, 10:47
Ich würde den Pointer des Files auf EOF stellen und einen Satz zurücklesen - entsprechenden Recordcounter um 1 erhöhen. Nicht die schnellste aber m.E. die sicherste Lösung. Ausserdem wird ein externer Counter umgangen.

Zur DTAARA-Lösung:
Gesetzt die DTAARA enthält einen falschen Wert, fliegt die ganze Sache beim Schreiben auf die Nase.