Anmelden

View Full Version : Probleme mit "SQL - update"



muadeep
13-07-07, 10:04
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

BenderD
13-07-07, 10:31
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

muadeep
13-07-07, 10:56
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 !!!

BenderD
13-07-07, 11:15
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 !!!

muadeep
13-07-07, 12:32
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?

BenderD
13-07-07, 13:13
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?