-
Genau, ich verwende das schon seit langem so, ist also nicht abhängig vom Release.
Wichtig ist nur, dass das Declare ganz genau so definiert wird.
Wenn es bei der "echten" UDF nicht klappt, schick ggf. mal den Code.
@Baldur: Ich glaube, das kann man im SQL Programming Redbook (heißen die noch so?) nachlesen.
-
Aber warum stehts nicht in der Online-Doku bzw. ich finde es nicht?
-
Ja, das stimmt schon, es ist teilweise relativ schwer spezielle Informationen zu finden.
Ich habe damals, als ich für meine DB Workshops, das Programm zusammen gestellt habe, die ganzen DB Redbooks !komplett! gelesen.
Redbook: "SQL Procedures, Triggers, andFunctions on IBM DB2 for i"
Kapitel: 2.6.6 Direct SQLSTATE and SQLCODE usage
Sometimes, it is handy to use the SQLSTATE or SQLCODE directly. Although error handlingis provided by the conditions, handlers and GET DIAGNOSTICS in PSM mostly preclude theneed for direct usage. However, direct usage can facilitate efficiencies sometimes in writingcode.
To access these values in an SQL procedure, you must first define them as variables with theexact names, as shown in Example 2-42.
Example 2-42 Declaring SQLCODE and SQLSTATE
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
-
Hallo zusammen,
ich habe das Problem gefunden. Wenn man es erstmal verstanden hat, ist es ganz einfach:
Ich habe in meinem Programm 2 select-Anweisungen, von denen nur eine ausgeführt wird:
Code:
if a=b then
select irgendwas, was schief geht (also not found);
end if;
if a<>b then
select irgendetwas anderes;
end if;
code = sqlcode;
An dieser Stelle sollte der sqlcode eigentlich noch 100 sein,
weil die erste select-Anweisung ausgeführt wurde, aber nichts gefunden hat.
Die zweite select-Anweisung wurde wegen des if a<>b nicht ausgeführt,
sollte meiner Meinung nach also den sqlcode nicht verstellen.
Aber: Der sqlcode wird von jeder SQL-Anweisung verändert.
Die Anweisung if a<>B ist ja auch eine SQL-Anweisung (wenn auch nur
eine Strukturanweisung). Diese Anweisung stellt den sqlcode wieder zurück auf 0,
da ja ein Vergleich technisch gesehen fehlerfrei stattgefunden hat.
Jetzt werdet ihr sagen: War ja klar, habe ich ja schon immer gewusst ...
Ok, das würde ich euch auch glauben :-)
Ich fand aber es schon tricky.
Nochmals Danke,
Dieter
-
Ja stimmt, damit hatte ich auch schon mal gekämpft.
Also ich fühle da voll und ganz mit dir!
Wenn du die SQL Funktion oder Prozedur im debug durchlaufen lässt, sieht man es dann auch sehr schön.
Ich glaube so habe ich es dann damals gefunden.
-
Deswegen macht es der Declare-NotFound-Handler dann einfacher;-).
Similar Threads
-
By harkne in forum NEWSboard Programmierung
Antworten: 16
Letzter Beitrag: 29-03-22, 16:25
-
By ILEMax in forum IBM i Hauptforum
Antworten: 16
Letzter Beitrag: 15-11-16, 06:56
-
By JonnyRico in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 20-04-05, 15:29
-
By MAA in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 29-08-04, 11:45
-
By Cheesy in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 14-07-04, 08:28
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