-
 Zitat von HPKahn
Hallo AS400-Gemeinde,
folgendes Problem stellt sich.
Aufruf einer SQL-SP aus einem CL
CALL PGM(ISBANILV/PROTIBLOG) PARM(&MSGTEXT +
'LOADPRJDAT' '10:12:12' 0 '00000')
Hier wird nur eine Protokollierung vorgenommen (Einfügen eines Datensatzes mit den übergebenen Parametern)
hier bekomme ich den Fehler MCH3601
Dieser Aufruf nicht aus einem CL sondern ebenfalls aus einer SP (Fehlerbehandlung)
/************************************************** ********** FEHLER ************************************************** *********************************/
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS EXCEPTION 1 V_MESSAGETEXT = MESSAGE_TEXT ;
CALL ISBANILV.PROTIBLOG(V_MESSAGETEXT, V_PROCNAME, T_STARTTIME, SQLCODE , SQLSTATE);
RESIGNAL ;
SET PRETVAL = 0 ;
RETURN ( 0 ) ;
END ;
funktioniert dagegen
Wo liegt der Fehler im CL.
Danke im voraus und schöne Feiertage
Grüße HP
Hallo,
laut IBM-Hotline ist es generell nicht möglich eine SQL-SP mit Parametern aus einem CL aufzurufen (ohne Parameter kein Problem).
Hier muß der Umweg über ein C- oder RPG-Programm gemacht werden.
Grüße HP Kahn
-
Nun, das halte ich für ein Gerücht.
Wenn ich ein Programm aus RPG aufrufen kann, dann gehts auch aus CLP. Statt RPGLE ist es eben CLLE. In beiden Fällen muss ich die Parameter als Felder deklarieren und dann beim Call übergeben.
Aus CLP/CLLE sollten besser Variablen statt Konstanten verwendet werden.
-
Hallo Fuerchau,
ich habe vor Weihnachten einen entsprechenden Call bei IBM aufgemacht und bekam die schon erwähnte Antwort.
hier nochmals eines kleines Beispiel, der Paramter RETVAL wird mit 0 übergeben, sowohl als Konstante als auch als Variable bricht das Programm mit dem Fehler ab.
CALL PGM(ISBANILV/GETPRJ) PARM (&RETVAL)
IF COND(&RETVAL = '0') THEN(DO)
CHGVAR VAR(&MSGTEXT) VALUE('Es hat einen Fehler beim Import der Projekte aus dem +
Projektmanager gegeben.')
Grüße HP Kahn
-
Irgendwo gibt es doch die Prozedurdeklaration, ggf. in SYSPARMS mal nachschauen.
Deine Parameter musst du nun identisch deklarieren und die zusätzlichen Parameter wie SQLCOD, SQLSTATE mit übergeben.
Im SQL-Reference steht beschrieben, wie die Parameter in welcher Folge, ob mit/ohne NULL-Indikator usw. abhängig vom Prozedurtyp an Prozeduren übergeben werden.
Im Zweifel läßt man sich die Prozedur noch mal erstellen und schaut sich die generierte C-Quelle an (Spoolfile).
Dann steht einem Aufruf aber wirklich nichts im Wege.
-
edit
mal so einen kleinen Test gemacht, sieht nicht so Hoffnungslos aus, pro Parameter, der auch rein gehen kann, wird eine short ergänzt (Null Bite vermutlich), beim Aufruf passiert noch was seltsames mit Parameterlängen, könnte aber heilbar sein.
Was dennoch dagegen spräche: das ist undokumentiert!!!
end of edit
naja, das könnte auch schief gehen
- die SQL Runtime weiß, dass das originär eine SQL Procedure war
- das Parameter mapping zwischen runtime und generiertem C Programm ist SQL spezifisch (zusätzliche Parameter)
- C kann im Parameter Handling mehr als CL (und auch RPG)
- nicht jede C Procedure muss aus CL aufrufbar sein
- nicht alles was die Datenbank in der Runtime hat, haben andere Programme auch
mfg
Dieter Bender,
der nicht unbedingt glaubt, dass es die zusätzlichen Parameter sind, wie man in anderen Foren lesen kann
 Zitat von Fuerchau
Irgendwo gibt es doch die Prozedurdeklaration, ggf. in SYSPARMS mal nachschauen.
Deine Parameter musst du nun identisch deklarieren und die zusätzlichen Parameter wie SQLCOD, SQLSTATE mit übergeben.
Im SQL-Reference steht beschrieben, wie die Parameter in welcher Folge, ob mit/ohne NULL-Indikator usw. abhängig vom Prozedurtyp an Prozeduren übergeben werden.
Im Zweifel läßt man sich die Prozedur noch mal erstellen und schaut sich die generierte C-Quelle an (Spoolfile).
Dann steht einem Aufruf aber wirklich nichts im Wege.
Similar Threads
-
By psd-400 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 21-08-06, 12:58
-
By Joe in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 27-04-06, 15:17
-
By COS in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 23-02-06, 16:01
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