[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Dec 2007
    Beiträge
    6
    Hm, nun ist alles so breit geworden, dass ich das nicht mehr editieren kann.

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.427
    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?

  3. #3
    Registriert seit
    Dec 2007
    Beiträge
    6
    Eigentlich sollte es so klappen. Nur hab ich noch irgendwo Fehler, weiß aber nicht welche.

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.427
    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).

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.787
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.389
    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 Zitat von Pikachu Beitrag anzeigen
    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).
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.017
    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

  8. #8
    Registriert seit
    Dec 2007
    Beiträge
    6
    Die Lösung für mein Problem findet man hier: PHP: PDO - Manual .

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.787
    Siehst du, Prepare und BindParam waren die benötigten Funktionen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Dec 2007
    Beiträge
    6
    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.

  11. #11
    Registriert seit
    Jan 2003
    Beiträge
    302

    PHP und call via sql procedure

    Zitat Zitat von David Beitrag anzeigen
    Die Lösung für mein Problem findet man hier: PHP: PDO - Manual .
    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

  12. #12
    Registriert seit
    Apr 2005
    Beiträge
    1

    PHP-AS/400 Programmaufruf mit Parameterrückgabe

    Hallo David,
    auch ich habe das gleiche Problem. Die Ausführung funktioniert, aber ich bekomme keinen Parameter von meinem aufgerufenem Programm auf der AS/400 zurück.
    Hier mein Testprogramm:

    try {
    $db = new PDO('odbc:AS400', conn_user, conn_password);
    } catch (Exception $e) {
    echo "Fehler beim Connect :" . $e->getMessage();
    }

    $parm1 = "'A'";

    $stmt = $db->prepare("CALL Bibliothek.Testprogramm($parm1)");
    $stmt->bindParam(1, $parm1, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT, 4000);

    if(isset($_POST['mail_abschicken']) && $_POST['mail_abschicken'] == 'Befehl auf der AS/400 aufrufen') {

    $stmt->execute();

    echo '
    ';
    echo 'Parm1 :' . $parm1;
    echo '
    ';
    }

    Der Parameter $parm1 bleibt auf A, obwohl das Programm auf der AS/400 ein B zurückgeben soll.

    Als ODBC-Treiber verwende ich den normalen iSeries Access ODBC Treiber.

    Du schriebst, dass ihr erst etwas einspielen musstet. Was war das denn?
    Bei mir ist die ganze PDO-Geschichte offenbar in meiner PHP-Installation schon dabei (PHP-Vers. 5.3.0).

    Auch ich arbeite mich in die mit PHP und As/400 Zugriffe ein.

    Danke für Deine Antwort.

Similar Threads

  1. Frage zum Befehl STRPCCMD
    By stoerfang in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 24-01-13, 11:27
  2. Frage zu WDSC bzw. CODE400
    By Mr.iSeries in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-09-08, 11:16
  3. Antworten: 4
    Letzter Beitrag: 21-01-07, 21:46
  4. Frage zu SQL UserDefinedFunction
    By cbe in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 24-08-06, 18:30
  5. AS/400, PHP, Novell Server
    By Asti in forum NEWSboard Server Software
    Antworten: 3
    Letzter Beitrag: 07-12-05, 15:56

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •