-
Frage zum Programmaufruf von PHP aus
Hallo,
hab da mal eine Frage zum Programmaufruf aus PHP heraus.
Mein Problem ist folgendes: Ich würde gerne ein Programm auf der iSeries ausrufen, welches mit ein Benutzerkürzel vorschlägt und wieder zurückgibt.
Ich weiß, dass ich das Programm über eine Stored Procedure aufrufen muss. Diese wurde auch erzeugt mit dem Befehl:
Code:
$proc_query = "CREATE PROCEDURE QTEMP.U00073 (INOUT :VORNAME
CHAR(15), INOUT :NACHNAME CHAR(15), INOUT :USERR CHAR(3), INOUT :USERK
CHAR(3), INOUT :FEHLER CHAR(50)) LANGUAGE RPGLE NOT DETERMINISTIC NO SQL
EXTERNAL NAME OFFTES.U00073 PARAMETER STYLE GENERAL";
Die Prozedur wird dann auch auf dem System erstellt. Danach möchte ich mein Programm aufrufen, welches die 5 Parameter entgegennimmt:
Code:
$exec = odbc_exec($db, "CALL QTEMP.U00073('$vorname', '$nachname', '$refu',
'$user', '$fehlermeldung')");
Nun bekomme ich aber folgende Fehlermeldung:
Code:
Warning: odbc_exec() SQL error: [unixODBC][IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0469 -
Attribut IN, OUT oder INOUT für Parameter 1 in Prozedur U00073 in QTEMP ungültig.,
SQL state S1000 in SQLExecDirect in [...]
Wo genau liegt mein Fehler?
Gruß
David
-
Hm, nun ist alles so breit geworden, dass ich das nicht mehr editieren kann.
-
Vielleicht können keine Werte zurückgegeben werden? Nimm' mal IN anstelle von INOUT. - Moment, du willst ja Werte zurückgeben. Vielleicht geht das so auf diese Art nicht?
-
Eigentlich sollte es so klappen. Nur hab ich noch irgendwo Fehler, weiß aber nicht welche.
-
Hier steht etwas zu DB2 und PHP. Suche da einmal nach INOUT. Da steht, daß es anscheinend nicht geht, Parameterwerte zurückzugeben. Der Artikel ist aber auch schon etwas älter (von 2004 oder 2006).
-
Wenn du einen Execute direkt ausführst sind automatisch alle Parameter IN.
Wenn du Returnwerte einer Prozedur haben willst, musst du eine Prepare-Anweisung durchführen und die Paramter explizit vom Typ deklarieren.
SQL weiß ja sonst nicht, wohin mit den Daten.
Wie das in PHP geht weiß ich nicht.
MyCmd = "call myproc parm(?, ?, ...)"
Für jedes "?" musst du die Paramter zuweisen.
-
falls PHP das nicht kann (was ich nicht weiß), dann bleibt immer noch der Weg über eine UDTF, oder eine Function; bei beiden Varianten kommt man an die Rückgabe über ein normales Select dran. Aber beim Design kriegen meine Nackenhaare jetzt schon Probleme, eine stored Procedure als ExUndHopp Objekt in der QTEMP ...
D*B
 Zitat von Pikachu
Hier steht etwas zu DB2 und PHP. Suche da einmal nach INOUT. Da steht, daß es anscheinend nicht geht, Parameterwerte zurückzugeben. Der Artikel ist aber auch schon etwas älter (von 2004 oder 2006).
-
Hallo,
also wir verwenden in solchen Fällen nur IN-Parameter und geben für die Output-Felder im SQLRPG-Programm ein Resultset zurück. Dieses Resultset kannst Du ja dann im PHP auslesen. Das funktioniert ohne Probleme.
Gruß,
KM
-
Die Lösung für mein Problem findet man hier: PHP: PDO - Manual .
-
Siehst du, Prepare und BindParam waren die benötigten Funktionen.
-
Ja, aber diese PHP Data Objects kannte ich vorher nicht und dafür mussten wir auch erst was einspielen.
Vielen Dank für eure Hilfe.
-
PHP und call via sql procedure
 Zitat von David
Hallo David,
ich habe nun das gleiche Problem und kann als PHP-Neuling
leider nichts mit "PDO" anfangen.
Kannst du mir zeigen, wie der PHP-Code dann aussehen muss.
Danke im Voraus !
Peet
Similar Threads
-
By stoerfang in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 24-01-13, 10:27
-
By Mr.iSeries in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 02-09-08, 10:16
-
By php27 in forum NEWSboard Server Job
Antworten: 4
Letzter Beitrag: 21-01-07, 20:46
-
By cbe in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 24-08-06, 17:30
-
By Asti in forum NEWSboard Server Software
Antworten: 3
Letzter Beitrag: 07-12-05, 14:56
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