$my_var = "1";
$connection = db2_connect ("*LOCAL", "ISCSC", "ISCSC");
$strSql = 'CALL LMTLIB.ARTEST(?)';
$stmt = db2_prepare ($connection, $strSql);
db2_bind_param($stmt, 1, "my_var", DB2_PARAM_INOUT, DB2_CHAR);
$rc = db2_execute ($stmt);
echo $my_var;
Lorsque ce bloc de code exécute, my_var de $ a la valeur |-|php - convertir ebcdic en ascii
Le programme RPGLE de test étant appelé est de retour wow
Lorsque le programme est modifié, le les personnages que je reviens sont différents ... donc je sais que je récupère des valeurs du programme. Le seul problème est de savoir comment convertir ces caractères d'EBCDIC en ASCII.
modifier
J'ai essayé d'utiliser les éléments suivants:
mb_convert_encoding($my_var, "ASCII", "cp037");
mb_convert_encoding($my_var, "ASCII", "EBCDIC");
iconv("cp037", "ASCII", $my_var);
iconv("EBCDIC", "ASCII", $my_var);
Mais je reçois cette erreur: "Faux charset, conversion de" ebcdic à ascii "n'est pas autorisé"
Et, "Mauvais jeu de caractères, la conversion de" cp037 en ascii "n'est pas autorisée"
Lorsque nous spécifions ccsid 37, et j'essaie appeler le SP ... je reçois un message: procédure lmtlib dans artest pas trouvé avec les paramètres spécifiés. – adam
Les paramètres doivent correspondre exactement. La procédure que j'ai publiée fonctionne quand elle est appelée par le code PHP que vous avez posté. J'ai utilisé varchar dans la procédure et variant dans le RPG. V5R4 ici. –
donc si nous avons fait CHARACTER (4), et vous avez fait VARCHAR (4), cela causerait le problème que je vois? Notre directeur m'obtient l'accès pour créer des procédures afin que je puisse examiner ceci par moi-même. Et alors je serai capable de fournir de meilleurs commentaires/réponses :) – adam