-
SQL Fehlerbehandlung in FreeRpg
Hallo *all,
ich habe jetzt mein FreeRPG Programm am Laufen.
Das Programm wird im Batch ausgeführt.
Ich würde jetzt gerne etwaige Fehler per sndmsg an den qsysopr senden.
Ich habe mir mal das http://publib.boulder.ibm.com/infoce...zajp/rzajp.pdf
angesehn, werde aber nicht ganz schlau daraus.
Mein Prg sieht etwa so aus:
/FREE
EXEC Sql Set Option COMMIT=*NONE;
EXEC SQL delete from aruba_msvc/MISpf300 where
ORDB00 = 'ADKNA2';
exec sql insert into aruba_msvc/mispf300
select 'ADKNA2', adfa, '0', '0', '0', '0', '0', adkto,
adknam
from adr01pf
where adabkz = 0;
Wenn das Statement jetzt auf Fehler läuft, wie müßte dann das exception aussehen?
Vermutlich ja etwas in der Form IF sqlcod > 0
Hat evtl. jemand ein Codeschnipsel für mich.
GG
-
Hallo!
Ich würde die Überprüfung auf die Variable "SQLSTT" empfehlen (z.B 02000 wäre im Falle von Delete -> The number of rows identified in the searched UPDATE or DELETE statement was zero.).
http://publib.boulder.ibm.com/infoce...2Frzalaccl.htm
Code:
If SQLStt <> '00000';
//Schreibe Fehlermeldung
EndIf;
Um nähere Informationen zu erhalten:
Code:
Exec SQL
Get Diagnostics Condition 1 :w_Text = MESSAGE_TEXT;
In w_Text befinden sich dann Infos zum Fehler.
Bitte beachte: Du solltest nach jeder SQL Anweisung auf SQLSTT überprüfen!
LG,
Sam
Nachtrag:
Zitat B. Hauser:
Bei einem negativen SQLCOD oder einem SQLSTT bei dem die ersten beiden Stellen weder '00' noch '01' noch '02' sind liegt ein Fehler vor.
Daher fragst du am besten auf die ersten 2 Stellen ab und wenn die ungleich 00, 01 & 02 sind -> Schreibe Fehlermeldung.
Last edited by S.Neinawaie; 12-10-12 at 10:33.
Grund: Bessere Lösung von B. Hauser hinzugefügt.
-
SQLCODE reicht aus.
Fehler ergeben einen negativen Wert.
Die Anzahl Sätze erfährt man in SQLER3.
-
Das ich den SQLCOD prüfe war mir ja schon klar....
Mich interessierte halt hier wie ich das sndmsg im FreeRPG hinbekomme.
GG
-
Je nach Jobdefinitionen reicht meist ein
Code:
/Free
DSPLY 'Nachricht';
/End-Free
aus.
Oder
Code:
/Free
Dsply 'Nachricht' 'MYMSGQ';
/End-Free
Ansonsten kannst du auch den CMD absetzen
Code:
H BNDDIR('QC2LE')
Dsystem pr 10i 0 extproc('system')
D cmd * value options(*string)
/Free
system ('SNDMSG ...');
/End-Free
lg Andreas
-
Man kann auch das API QMHSNDPM bemühen.
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks