Anmelden

View Full Version : _RLOcate, _RUpdate und CPF5009 / CPF5026



ebschubert
12-08-10, 19:04
Hallo zusammen :)

ich habe folgendes Problem:

Ich positioniere einen Satz über den Satzschlüsel direkt mit:



D SetRrnFile PI n
D InPtr * Const
D InpRrn 20u 0 Const

D Result s n Inz
D Rrn s 10i 0 Inz
D cRRN_EQ s 10i 0 Inz( 134218496 )

c Eval Rrn = InpRrn
c Eval pIoFb = *Null
C Eval pIoFb = RSetLL( InPtr
C : *Null
C : Rrn
C : cRRN_EQ )

C Return pIoFb <> *Null and RIoFb.Num_Bytes

RSetLL ist hier _RLocate

Der Satz wird auch gefunden -> pIoFb ist <> *NULL und RIoFb.Num_Bytes = 1

Jetzt will ich diesen Satz aktualisieren



D UpdateFile PI
D InPtr * Const
D InNumByte Like( NumBytes ) Const
D InReadBuf Like( ReadBuf ) Const

D StrBuf s Like( ReadBuf ) Inz

c Eval StrBuf = InReadBuf
C Eval pIoFb = RUpdate( InPtr
C : %Addr( StrBuf )
C : InNumByte )

Bei Sätzen mit Schlüsseln erhalte ich jedoch genrell CPF5009 bzw. CPF5026 !!!

Wer weiss Rat? Danke vorab

andreaspr@aon.at
13-08-10, 06:56
Morgen,
generell wäre es super bei Fehlermeldungen nicht nur die MSGID sondern auch den dazugehörigen Text bzw. sogar auch das Joblog mit gepostet. Kann manchmal sehr hilfreich sein :)
In diesem Fall versuchst du einen Satz zu ändern wo diese Schlüsselfelder jedoch schon einmal existieren.
Bei Tabellen die einen Schlüssel besitzen dürfen diese Schlüsselfelder nicht doppelt vorkommen.

Pikachu
13-08-10, 09:26
Warum nimmst du eigentlich nicht die in RPG eingebauten Befehle CHAIN und UPDATE? :confused:

ebschubert
13-08-10, 09:37
Morgen,
generell wäre es super bei Fehlermeldungen nicht nur die MSGID sondern auch den dazugehörigen Text bzw. sogar auch das Joblog mit gepostet. Kann manchmal sehr hilfreich sein :)
In diesem Fall versuchst du einen Satz zu ändern wo diese Schlüsselfelder jedoch schon einmal existieren.
Bei Tabellen die einen Schlüssel besitzen dürfen diese Schlüsselfelder nicht doppelt vorkommen.

@andreaspr@aon.at
ich denke mir es ist das gleiche wie SETLL und UPDATE unter RPG

@pikachu
Ich kenne die Datei zur Programmlaufzeit nicht und öffne sie mit _ROpen

BenderD
13-08-10, 10:05
... works as designed!
Die constraints einer Datei, die man zur Laufzeit nicht kennt, kennt man ebenfalls nicht, da ist es halt Schicksal, wenn ein update nicht geht!

D*B


@andreaspr@aon.at
ich denke mir es ist das gleiche wie SETLL und UPDATE unter RPG

@pikachu
Ich kenne die Datei zur Programmlaufzeit nicht und öffne sie mit _ROpen