Bonjour,
J'ai écrit une petite application (bons de commande) qui s'appuie sur une base Informix à laquelle je me connecte via ODBC
En environnement de développement, aucun soucis
Par contre le test réagit très différemment J'ai généré la version client que j'ai installé sur un serveur qui a le même client Informix connecté à la même base que dans mon environnement de dev. J'utilise le "Serveur de test" de Webdev.
Le problème: je charge une zone répétée en bouclant sur une requ^te qui balaie mes fournisseurs et, pour chacun d'eux, je dois exécuter une autre requête pour récupérer des infos complémentaires.
Voici le morceau de code en question ...
SI PAS SQLExec(sReq, "irLTIE_ZR_Tiers") ALORS pgsAffErrSQL("irLTIE_ZR_Tiers", "Erreur lors de la lecture des fournisseurs","Répertoire des four nisseurs") RETOUR SINON Trace("Entrée dans la boucle sur Tiers") TANTQUE SQLAvance("irLTIE_ZR_Tiers") = 0 ET nEnreg < 100 Trace(" Ligne n° " + NumériqueVersChaine(nEnreg) ) nEnreg = nEnreg + 1 nIdtr = SQLLitCol("irLTIE_ZR_Tiers",1) nCode = SQLLitCol("irLTIE_ZR_Tiers",2) sLibe = Gauche(SQLLitCol("irLTIE_ZR_Tiers",3)) nIadr = SQLLitCol("irLTIE_ZR_Tiers",4) SI pgsLitAdre(nIadr, S_Adre) <> CST_OK ALORS Trace(" Erreur en lecture de adresse")
pgsInitializeAdre(S_Adre) <<<- requête dans cette procédure !!
SINON Trace(" Adresse lue OK") FIN ZoneRépétéeAjouteLigne(LTIE_ZR_Tiers, nIdtr, nCode, sLibe, ... "", S_Adre:sLig1, S_Adre:sLig2, S_Adre:sLig3, ... "", S_Adre:sMail, "mailto:" + S_Adre:sMail)
FIN Trace("Sortie de la boucle sur Tiers") SQLFerme("irLTIE_ZR_Tiers") FIN
En dev, aucun pb, les deux requêtes fonctionnent bien ensemble.
En test, je sors de la boucle dès le premier tour. Je ne récupère que le premier fournisseur et son adresse (ce qui prouve que les deux requ^tes fonctionnent bien) Au passage, je note que le mode trace ne fonctionne pas ce qui ne facilite pas les choses ...
Question : L'imbrication de requête est-elle interdite en exploitation ? |