-
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 '';
}
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.
-
Das normale CALL-Kommando kann keine Parameter zurückgeben.
Wenn du die ODBC-Schnittstelle verwenden willst, musst du eine externe SQL-Procedure definieren (siehe ganz oben bei Create Pocedure) und diese dann aufrufen.
Für PHP gibts aber eine AS/400-AddOn-Lib in der auch Programmaufrufe mit Parametern möglich sein sollen.
-
Hallo zusammen,
mit PDO und ODBC kenne ich micht nicht aus.
Aber mit der i5_Toolkit Library geht es so:
PHP-Code:
function load_the_RPG_program_as_test($conn )
{
//*********************************************
// Anmeldung vom Programm vorbereiten
//*********************************************
$desc=array(
array("name"=>"p_delay", "io"=>I5_INOUT, "type" => I5_TYPE_CHAR, "length"=>"1"),
array("name"=>"p_xmldta", "io"=>I5_INOUT, "type" => I5_TYPE_CHAR, "length"=>"32000"),
);
$prog=i5_program_prepare("MK/A_PHPXML",$desc, $conn );
if (!$prog) {
display_error("i5_pgm_prepare");
exit();
}
//**************************************************************
// Programmm starten
// $parms sind die Werte die an das RPG übergeben werden
// $retval damit werden die variablen vom RPG Programm gesetzt
//**************************************************************
$parms = array ("p_delay"=> $_POST['delay'],
"p_xmldta"=>' '
);
$retval= array( "p_delay"=>"thedelayparm",
"p_xmldta"=>"the_xml_from_rpg_program"
);
$ret=i5_program_call($prog, $parms, $retval);
if (!$ret){
display_error("i5_pgm_call");
exit();
}
return $the_xml_from_rpg_program ;
i5_program_close($prog);
}
Gruß
Michael
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