|
Inicio → WINDEV 2024 → Voici des infos pour dev. sur AS400 sans EASYCOM (avec ODBC ou OLEDB) |
Voici des infos pour dev. sur AS400 sans EASYCOM (avec ODBC ou OLEDB) |
Iniciado por erick.jenft, 27,oct. 2005 15:42 - 6 respuestas |
| |
| | | |
|
| |
Publicado el 27,octubre 2005 - 15:42 |
Bonjour, Plutot spécialiste AS400 (et pas du tout un spécialiste des ODBC et OLEDB) je voulais profiter à la fois de l’efficacité de Windev (développement rapide, interface utilisateur…) et de la fiabilité de l’AS400 (sécurité pour les fichiers) SANS UTILISER EASYCOM. Depuis quelques jours j’ai glané des informations sur le forum PCSOFT et fait de nombreux tests. Je vous fais donc partager mes premières conclusions.
Bien entendu, si vous avez des commentaires ou compléments d’information, n’hésitez pas à nous les faire partager.
Il existe au moins 2 méthodes pour travailler avec des fichiers AS400 : 1) les interroger par SQL (SQLCONNECTE et ordres SQL) 2) en décrivant la connexion à l’AS400 puis en utilisant les ordres classiques Hxxxxx
1) Par SQLCONNECTE, il est possible d’utiliser soit 1 driver ODBC soit 1 provider OLEDB (livrés avec Client Access).
Exemple : NumConnexion est un entier ResExec est un booléen NomSource est une chaîne
// Connexion avec ODBC NomSource = "ODBC_CAccess32" // Nom de la source définie dans source ODBC NumConnexion = SQLConnecte(NomSource, "User", "Pwd", "", "ODBC") // User et Pwd : Utlisateur et mot de passe AS400 // OU // Connexion avec OLEDB NumConnexion = SQLConnecte("MonAS400", "User", "Pwd","", "OLEDB", "IBMDASQL") // MonAS400 : Nom de l’AS400 sur le réseau // IBMDASQL : nom d’1 des provider OLEDB en V5R3 // Quelque soit la connexion… SI PAS NumConnexion<>0 ALORS // La connexion a échoué : affichage d'un message explicatif SQLInfoGene() Erreur("La connexion à la source de données" + NomSource + ... "a échoué." +RC+ "Code erreur : " + SQL.Erreur +RC+... SQL.MesErreur) SQLDeconnecte() FIN // Donnée1 et Donnée2 sont des zones du fichier NOMFIC dans la bibliotheque BIBLIO ResExec = SQLExec("SELECT Donnée1, Donnée2 FROM BIBLIO.NOMFIC", "REQ1") SI ResExec ALORS // Saisie1 et Saisie2 sont 2 rubriques d'une fenetre SQLAssocie("REQ1", Saisie1, Saisie2) SQLPremier("REQ1") SINON SQLInfoGene("REQ1") Info("Erreur exécution de la requête : " + SQL.MesErreur) FIN
Avec ce code le fichier BIBLIO.NOMFIC n'a pas besoin d’exister dans l'analyse. La connexion ODBC est plus rapide mais a des temps de réponses plus variables que la connexion OLEDB.
2) Par la description de la connexion, seul l’accés OLEDB est permis :
Exemple : HDécritConnexion("connectAS"," User "," Pwd "," MonAS400","","IBMDASQL",hOLectureEcriture) HOuvreConnexion("connectAS")
HLitRecherche(NOMFIC,Clef_de_nomfic,Valeur_recherchee) SI HTrouve(NOMFIC) ALORS Saisie1 = NOMFIC. Donnée1 Saisie2 = NOMFIC. Donnée2 SINON Saisie1 = 0 Saisie2 = 0 FIN
Avec ce type de connexion, les ordres Windev Hxxxxx sont utilisables. Cette connexion ce fait avec OLEDB donc moins rapide.
INFOS SUPPLEMENTAIRES (mais peut être à compléter…): 1) Si vous voulez utiliser les ordres Hxxxxx, importez vos fichiers dans l’analyse en passant par un lien OLEDB. Si vous passés par un lien ODBC, le nom de fichier n’est pas reconnu et génére des erreurs de compilation. 2) Les importations de fichiers AS400 ne ramènent pas les clefs éventuelles. AUCUNE IMPORTANCE ! Dans le fichier importé vous pouvez rajouter toutes les clef que vous souhaitez et les utilisées même si elles n’existent pas dans le fichier AS400 ! … Par contre, je n’ai pas trouvé le moyen d’utiliser des clefs composées… 3) On ne peut importer que les fichiers physiques en passant par un lient ODBC. On peut importer les physiques et les logiques avec OLEDB (mais sans la clef). 4) Je n’ai pas trouvé comment créer un fichier sur l’AS400 (HCréationSiInexistant ne fonctionne pas)… Pour info, ma config : 2 AS400 (modèle 520 en V5R3), 6 serveurs intel, réseau LAN et WAN en IP, 150 utilisateurs (passifs et PC avec Client Access V5R3M0 niveau de maintenance SI16496). Développements en Windev 8.
Voila, en espérant que ces quelques lignes pourront satisfaire du monde… Merci à tous ceux qui avaient déjà abordé ces sujets sur des posts précédents et qui m’ont ainsi permis de faire ce premier résumé.
PCSofteurs, PCSofteuses, bon développement |
| |
| |
| | | |
|
| | |
| |
Publicado el 27,octubre 2005 - 17:11 |
Bonjour, Nous avons - 2 E200 V3R2 (eh oui ils tournent encore...O))) - 1 40S V4R4 (oui je sais c'est pas très récent mais bon c'est de la bonne came) - 1 270 V5 ( on n'est pas riche alors on fait avec)
Le constat que nous avons fait et que sur les deux modèles récents (on ne rigole pas), le même programme en ODBC était je vais dire "acceptable" mais sur nos deux vieux nanars, nous étions à 1 minute en moyenne sur une fonction particulière. Après changement de la carte CPU qui a doublé le fréquence d'horloge on est passé à 30s en moyenne (pas de miracle...) En passant avec Easycom 5s... no comment C'est vrais que si on change de version de Windev alors on doit changer la version EA et c'est pas le même tarif surtout en illimité. Ayant EA pour 7.5 et devant utiliser des fonctions typique de WD8.0 (PDF et événement sur port RS232) j'ai trouvé l'astuce suivante : Un programme en 7.5 qui dialogue avec celui en 8.0 (via un fichier HF et des messages Windows) et le tour et joué (un peut plus long mais bon ) car même si je passe en 9.0 voir en 10.0 cela fonctionnera et "sans dépense en supplément"... |
| |
| |
| | | |
|
| | |
| |
Publicado el 27,octubre 2005 - 19:01 |
On peut rajouter à ce brillant exposé que dans la méthode 1, on peut lancer des batch : PROCEDURE ExeBatch400(fnc400) rq,str est une chaîne Nrq est une chaîne = "RqExe" Ret,merr est une chaîne rq = "CALL "+fnc400 SI PAS SQLExec(rq,Nrq) ALORS SQLInfoGene( Nrq ) str = SQL.MesErreur merr = "Erreur " + SQL.Erreur +"dans la requête :"+Nrq +CR+str SQLFerme( Nrq ) RENVOYER "-1"+CRLF+merr FIN SQLFerme( Nrq ) RENVOYER "0"
"erick" <erick.jenft@ermitage.net> a écrit dans le message de news: 4360c425$1@news.pcsoft.fr...
Bonjour, Plutot spécialiste AS400 (et pas du tout un spécialiste des ODBC et OLEDB) je voulais profiter à la fois de l'efficacité de Windev (développement rapide, interface utilisateur.) et de la fiabilité de l'AS400 (sécurité pour les fichiers) SANS UTILISER EASYCOM. Depuis quelques jours j'ai glané des informations sur le forum PCSOFT et fait de nombreux tests. Je vous fais donc partager mes premières conclusions.
Bien entendu, si vous avez des commentaires ou compléments d'information, n'hésitez pas à nous les faire partager.
Il existe au moins 2 méthodes pour travailler avec des fichiers AS400 : 1) les interroger par SQL (SQLCONNECTE et ordres SQL) 2) en décrivant la connexion à l'AS400 puis en utilisant les ordres classiques Hxxxxx
1) Par SQLCONNECTE, il est possible d'utiliser soit 1 driver ODBC soit 1 provider OLEDB (livrés avec Client Access).
Exemple : NumConnexion est un entier ResExec est un booléen NomSource est une chaîne
// Connexion avec ODBC NomSource = "ODBC_CAccess32" // Nom de la source définie dans source ODBC NumConnexion = SQLConnecte(NomSource, "User", "Pwd", "", "ODBC") // User et Pwd : Utlisateur et mot de passe AS400 // OU // Connexion avec OLEDB NumConnexion = SQLConnecte("MonAS400", "User", "Pwd","", "OLEDB", "IBMDASQL") // MonAS400 : Nom de l'AS400 sur le réseau // IBMDASQL : nom d'1 des provider OLEDB en V5R3 // Quelque soit la connexion. SI PAS NumConnexion<>0 ALORS // La connexion a échoué : affichage d'un message explicatif SQLInfoGene() Erreur("La connexion à la source de données" + NomSource + ... "a échoué." +RC+ "Code erreur : " + SQL.Erreur +RC+... SQL.MesErreur) SQLDeconnecte() FIN // Donnée1 et Donnée2 sont des zones du fichier NOMFIC dans la bibliotheque BIBLIO ResExec = SQLExec("SELECT Donnée1, Donnée2 FROM BIBLIO.NOMFIC", "REQ1") SI ResExec ALORS // Saisie1 et Saisie2 sont 2 rubriques d'une fenetre SQLAssocie("REQ1", Saisie1, Saisie2) SQLPremier("REQ1") SINON SQLInfoGene("REQ1") Info("Erreur exécution de la requête : " + SQL.MesErreur) FIN
Avec ce code le fichier BIBLIO.NOMFIC n'a pas besoin d'exister dans l'analyse. La connexion ODBC est plus rapide mais a des temps de réponses plus variables que la connexion OLEDB.
2) Par la description de la connexion, seul l'accés OLEDB est permis :
Exemple : HDécritConnexion("connectAS"," User "," Pwd "," MonAS400","","IBMDASQL",hOLectureEcriture) HOuvreConnexion("connectAS")
HLitRecherche(NOMFIC,Clef_de_nomfic,Valeur_recherchee) SI HTrouve(NOMFIC) ALORS Saisie1 = NOMFIC. Donnée1 Saisie2 = NOMFIC. Donnée2 SINON Saisie1 = 0 Saisie2 = 0 FIN
Avec ce type de connexion, les ordres Windev Hxxxxx sont utilisables. Cette connexion ce fait avec OLEDB donc moins rapide.
INFOS SUPPLEMENTAIRES (mais peut être à compléter.): 1) Si vous voulez utiliser les ordres Hxxxxx, importez vos fichiers dans l'analyse en passant par un lien OLEDB. Si vous passés par un lien ODBC, le nom de fichier n'est pas reconnu et génére des erreurs de compilation. 2) Les importations de fichiers AS400 ne ramènent pas les clefs éventuelles. AUCUNE IMPORTANCE ! Dans le fichier importé vous pouvez rajouter toutes les clef que vous souhaitez et les utilisées même si elles n'existent pas dans le fichier AS400 ! . Par contre, je n'ai pas trouvé le moyen d'utiliser des clefs composées. 3) On ne peut importer que les fichiers physiques en passant par un lient ODBC. On peut importer les physiques et les logiques avec OLEDB (mais sans la clef). 4) Je n'ai pas trouvé comment créer un fichier sur l'AS400 (HCréationSiInexistant ne fonctionne pas). Pour info, ma config : 2 AS400 (modèle 520 en V5R3), 6 serveurs intel, réseau LAN et WAN en IP, 150 utilisateurs (passifs et PC avec Client Access V5R3M0 niveau de maintenance SI16496). Développements en Windev 8.
Voila, en espérant que ces quelques lignes pourront satisfaire du monde. Merci à tous ceux qui avaient déjà abordé ces sujets sur des posts précédents et qui m'ont ainsi permis de faire ce premier résumé.
PCSofteurs, PCSofteuses, bon développement
|
| |
| |
| | | |
|
| | |
| |
Publicado el 27,octubre 2005 - 19:28 |
Tu as aussi l'astuce suivante : 1 seule licence EA -pour la rapidité-, mais sur un serveur SOAP, et tous les autres postes s'adressent en services WEB. C'est hyper rapide, mais ça permet des postes multi plate forme, comme des PPC en WIFI par exemple, et en nombre illimité.
"Philippe PASQUALI" <philippe.pasquali@bopack.com> a écrit dans le message de news: 4360d911$1@news.pcsoft.fr...
Bonjour, Nous avons - 2 E200 V3R2 (eh oui ils tournent encore...O))) - 1 40S V4R4 (oui je sais c'est pas très récent mais bon c'est de la bonne came) - 1 270 V5 ( on n'est pas riche alors on fait avec)
Le constat que nous avons fait et que sur les deux modèles récents (on ne rigole pas), le même programme en ODBC était je vais dire "acceptable" mais sur nos deux vieux nanars, nous étions à 1 minute en moyenne sur une fonction particulière. Après changement de la carte CPU qui a doublé le fréquence d'horloge on est passé à 30s en moyenne (pas de miracle...) En passant avec Easycom 5s... no comment C'est vrais que si on change de version de Windev alors on doit changer la version EA et c'est pas le même tarif surtout en illimité. Ayant EA pour 7.5 et devant utiliser des fonctions typique de WD8.0 (PDF et événement sur port RS232) j'ai trouvé l'astuce suivante : Un programme en 7.5 qui dialogue avec celui en 8.0 (via un fichier HF et des messages Windows) et le tour et joué (un peut plus long mais bon ) car même si je passe en 9.0 voir en 10.0 cela fonctionnera et "sans dépense en supplément"...
|
| |
| |
| | | |
|
| | |
| |
Publicado el 28,octubre 2005 - 11:26 |
Très bonne idée ce post! Je vois que d'autres aussi cherchent des solutions alternatives à EA.
Savez vous dans le cas d'une connexion ODBC quels sont les ports qu'il faut ouvrir ? Je voudrais mettre en place ce type de traitement sur un site webdev et comme il est hebergé dans la DMZ il faut que je dise à mon administrateur réseau les ports à ouvrir .
Merci à vous
-- Bon développement à tous Christian
cciochir@ _ at _ cmii.fr |
| |
| |
| | | |
|
| | |
| |
Publicado el 28,octubre 2005 - 12:10 |
Excellent complement d'information. Je n'ai pas encore testé mais ca ne va pas tarder. Je te fais confiance, Gerard parce que c'est grace à certains de tes posts que j'ai pu réalisé ce sujet. Merci |
| |
| |
| | | |
|
| | |
| |
Publicado el 16,marzo 2006 - 16:54 |
Quelqu'un aurait-il (elle) essayé une connexion Windev Native DB2 ?
Si oui quelles conclusions ?
Merci |
| |
| |
| | | |
|
| | | | |
| | |
|