bonjour
je ne connais rien en AS/400
Je fais un dév en dot.net C# pour exécuter des programmes existants sur l'AS/400 et en récupérer les résultats.
j'utilise la DLL IBM fournie par la ligne :
using IBM.Data.DB2.iSeries;
Ensuite je fais mes connexions et je prépare mes objets avec du code standard tel que :
iDB2Connection CnxIBM = new iDB2Connection;
iDB2Command CmdIBM = new iDB2Command;
Je fais le lien entre la connexion et la commande :
CmdIBM = new iDB2Command
{
Connection = CnxIBM,
CommandType = CommandType.Text
};
Je mets une commande dans la chaîne :
CmdIBM.CommandText = "CALL PGM(TRUST/CHKAS_INT)";
(TRUST est une bibliothèque-programme sur l'AS400, utilisée tous les jours par des menus)
J'exécute la commande et je récupère mon résultat dans un objet DataReader :
iDB2DataReader Dr = Cmd.ExecuteReader();
A ce moment là, la commande est envoyée à l'AS400 et j'en attends un retour qui doit être "enregistré" dans l'objet DataReader
Mais j'ai le message d'erreur suivant :
SQL0206 La colonne ou la variable globale QZ99B3E6962CB15001 est introuvable.
Attention, cette commande fonctionne en direct sur l'AS400 !
si je change de commande, avec celle-ci :
CmdIBM.CommandText = "WRKACTJOB"
j'obtiens l'erreur :
SQL0104 Elément syntaxique WRKACTJOB n'est pas correct. Eléments possibles : ( CL END GET SET CALL DROP FREE HOLD LOCK OPEN WITH ALTER.
Attention, cette commande fonctionne aussi en direct sur l'AS400 !
idem avec pleins d'autres commandes/programme
Je ne peux exécuter aucune commande ni aucun programme AS400 dans mon application dot.Net
Dois-je rajouter du code d'initialisation ?
Partager