View Full Version : Probleme mit "SQL - update"
ich möchte in einem SQLRPG einen bestimmten Satz einer Datei mit SQL updaten
Habe folgendes Statement in mein SQLRPG eingebaut:
H .J
*
C/EXEC SQL
C+ UPDATE xxx/ARTIKPF
C+ SET VERPRM = 999
C+ WHERE FIRMNR = '626' AND ARTNR = '100272500'
C/END-EXEC
*
C MOVE *ON *INLR
der entsprechende Satz wird aber leider nie upgedated ?!?!?
was mache ich falsch, bzw. muss ich etwas spezielles berücksichtigen
berücksichtigen muss man da schon mehreres, zum Beispiel sollte man das Programm umwandeln und aufrufen und im Joblog nachschauen und im Programm den SQLCODE abfragen...
ich möchte in einem SQLRPG einen bestimmten Satz einer Datei mit SQL updaten
Habe folgendes Statement in mein SQLRPG eingebaut:
H .J
*
C/EXEC SQL
C+ UPDATE xxx/ARTIKPF
C+ SET VERPRM = 999
C+ WHERE FIRMNR = '626' AND ARTNR = '100272500'
C/END-EXEC
*
C MOVE *ON *INLR
der entsprechende Satz wird aber leider nie upgedated ?!?!?
was mache ich falsch, bzw. muss ich etwas spezielles berücksichtigen
a) Programm wurde selbstverständlich umgewandelt!
b) Joblog bringt nach call des Programm's folgende Fehlermeldungen:
- Teildatei ARTIKPF nicht in Journal *N aufgezeichnet.
- ARTIKPF in xxx für Operation ungültig.
wenn ich mit STRSQL das SQL-Statement
(UPDATE xxx/ARTIKPF SET VERPRM = 999 WHERE FIRMNR = '626' AND ARTNR = '100272500') funktioniert es !!!
Hallo,
das Programm wurde mit dem default COMMIT(*CHG) erstellt, während die SQL Session auf COMMIT(*NONE) eingestellt ist.
Notbehelf: Programm mit COMMIT(*NONE) umwandeln.
Empfehlung: Commit Steuerung in Programm durch Journalisierung der Datei ermöglichen und verwenden:
Dieter Bender
a) Programm wurde selbstverständlich umgewandelt!
b) Joblog bringt nach call des Programm's folgende Fehlermeldungen:
- Teildatei ARTIKPF nicht in Journal *N aufgezeichnet.
- ARTIKPF in xxx für Operation ungültig.
wenn ich mit STRSQL das SQL-Statement
(UPDATE xxx/ARTIKPF SET VERPRM = 999 WHERE FIRMNR = '626' AND ARTNR = '100272500') funktioniert es !!!
BINGO !!!
das war's! -> dankeschön
Eine Frage hätt ich noch:
bin mit Journalisierung nicht so speziell! :-(
Wie ermögliche ich die "Commit Steuerung in Programm durch Journalisierung der Datei?
Journal anlegen mit: CRTJRNRCV, CRTJRN
Dateien journalisieren (zeichnet Änderungen auf: STRJRNPF
Programme mit COMMIT(*CHG) wandeln
Am Ende jeder Transaktion werden dann mit Commit die Änderungen festgeschrieben und die Satzsperren freigegeben, oder mit Rollback alles rückgängig gemacht und Sperren freigegeben.
Vorsicht: mit Commit *NONE arbeitet SQL ohne Satzsperren (Ausnahme Cursor).
Beispiel:
A liest Lagermenge 27 und addiert 3
B liest Lagermenge 27 und addiert 5
A schreibt 30
B schreibt 32
Fazit: A hätte sich das auch schenken können, meint aber, dass er drei zugebucht hat.
Dieter Bender
BINGO !!!
das war's! -> dankeschön
Eine Frage hätt ich noch:
bin mit Journalisierung nicht so speziell! :-(
Wie ermögliche ich die "Commit Steuerung in Programm durch Journalisierung der Datei?