PHP : appel d'un programme sur l'ibm i

configuration Apache, Zend et PHP , Web services
Répondre
thx
Messages : 4
Enregistré le : jeu. 21 févr. 2013, 15:45:30

PHP : appel d'un programme sur l'ibm i

Message par thx »

Bonjour,

une petite question qui peut-être trouvera une réponse ici :
Pour déclencher un traitement sur l'ibm i depuis un serveur apache sous windows, je pensais utiliser l'équivalent du simplissime QUOTE RCMD en ftp (peut-être y a-t-il plus élégant ?) mais le script suivant :

Code : Tout sélectionner

<?php
$ftp_server = "IP";
$ftp_user_name = "USR";	
$ftp_user_pass = "PWD";
$command = "CALL CLTSTEXEC";

// Initialisation de la connexion
$conn_id = ftp_connect&#40;$ftp_server&#41;;

// Identification
$login_result = ftp_login&#40;$conn_id, $ftp_user_name, $ftp_user_pass&#41;;

// Éxécution d'une commande
if &#40;ftp_exec&#40;$conn_id, $command&#41;&#41; &#123;
    echo $command. " a été exécuté avec succès";
&#125; else &#123;
    echo "Impossible d'exécuter &#58; ".$command;
&#125;

// Fermeture de la connexion
ftp_close&#40;$conn_id&#41;;
?>
renvoi :

Warning: ftp_exec() [function.ftp-exec]: Option on the SITE subcommand not recognized

Pas d'erreur avec ftp_raw... mais pas de résultat non plus :wink:
Une suggestion ?

Merci !

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

ftp_exec

Message par cmasse »

je suis pas trop fan d'utiliser FTP pour lancer un pgm, mais je pense que dans le cas présent, il peux y avoir un soucis de Bibliothèque.

sinon, passer par un connecteur SQL (odbc, db2_connect, ...) permet de considérer n'importe quel pgm comme une procédure stockée : C'est le CALL SQL qu'il faudra alors utiliser.
Christian Massé (Volubis.fr)

thx
Messages : 4
Enregistré le : jeu. 21 févr. 2013, 15:45:30

(sans texte)

Message par thx »

Merci pour cette réponse rapide.
Pour la bibliothèque, je ne sais pas, il me semble avoir essayé beaucoup de syntaxes pour qualifier l'objet, ou sinon de l'avoir placé dans la curlib du profil de connexion, sans résultat...

Je retiens en tout cas que ce n'est pas la bonne approche, ci-dessous donc un script répondant au problème avec odbc (merci volubis.fr), à toutes fins utiles.

Code : Tout sélectionner

<?php

	$dsn = "DRIVER=iSeries Access ODBC Driver;SYSTEM=&#91;SYSTEM&#93;;DBQ=&#91;BIB&#93;";
	$user = "&#91;USR&#93;";
	$passwd = "&#91;PWD&#93;";
	$db = odbc_connect&#40;$dsn, $user, $passwd&#41;;
    
	$resultat = odbc_exec&#40;$db,"CALL &#91;BIB&#93;.&#91;PGM&#93;"&#41;;
	
	if &#40;$resultat == 0&#41; &#123;                                                      
	     echo &#40;"Erreur " . odbc_error&#40;&#41; . " &#58; " . odbc_errormsg&#40;&#41;&#41;;
	&#125;
	
	odbc_close&#40;$db&#41;;
?>

Répondre