Bonjour,
Je débute en Windev et bien qu'une migration vers la WD 25 est prévue dans quelques semaines, mon entreprise utilise toujours la version 23 qui répond aux besoins. La base de données est MS SQL server.
J'ai écrit une petite application, simple qui demande à un utilisateur juste une date de début de période. L'application boucle ensuite depuis cette date jusqu'à la date du jour et construit un fichiers CSV par jour. Ces fichiers contiennent les données des transaction du jour issues de 2 tables de la DB.
La requête que j'utilise fonctionne parfaitement dans le SQL Server Management Studio. Par contre lorsque j’exécute l'application WD, la requête retourne les données nécessaires pour toutes les journées avant une certaine date (le 10/01/2020), seulement une partie des données pour le 10 et ensuite plus rien pour les autres journées.
J'ai pensé à un problème dans l'une des 2 tables, mais je ne trouve rien (requête retournes les valeurs pour tous les jours) et une autre application qui travaille sur les même tables n'a pas de soucis.
Auriez-vous une idée de ce qui peut causer ce problème?
Voici le code qui est exécuté:
CAMPAGNE_USE est un entier = 2019
//************************************************************************************************************************
G_REQUEST_PROTOTYPE est une chaîne = "Select date_comptable_liv," +... " USINE," +... " numero," +... " L.planteur," +... " Right (' '+NOM_PLANTEUR,30) NOM_PLANTEUR," +... " ZONE_GEOGRAPHIQUE région," +... " Right (' '+E.DESC_EMBLAVEMENT, 30) EMBLAVEMENT," +... " poids_entree," +... " poids_sortie," +... " POIDS_A_TARER POIDS_BRUT," +... " left(HEURE_ENTREE_BASCULE,2)+':'+Right(HEURE_ENTREE_BASCULE,2) heure_échantillonnage," +... " Right('00000'+CONVERT(varchar(10), S_poids_brut_1),6) S_poids_brut_1," +... " Right('00000'+CONVERT(varchar(10), S_poids_net_1),6) S_poids_net_1 ," +... " Right('00000'+CONVERT(varchar(10), S_poids_brut_2),6) S_poids_brut_2," +... " Right('00000'+CONVERT(varchar(10), S_poids_net_2),6) S_poids_net_2," +... " Right('00000'+CONVERT(varchar(10), CALCUL_TARE_COLLET),6) CALCUL_TARE_COLLET," +... " Right('00000'+CONVERT(varchar(10), CALCUL_TARE_TOTALE),6) CALCUL_TARE_TOTALE," +... " Right('00000'+CONVERT(varchar(10), CALCUL_TARE_TERRE),6) CALCUL_TARE_TERRE," +... " Right('00000'+CONVERT(varchar(10), S_POIDS_ADD1),6) terre," +... " Right('00000'+CONVERT(varchar(10), S_POIDS_ADD2),6) pierre," +... " Right('00000'+CONVERT(varchar(10), S_POIDS_ADD3),6) pourries," +... " Right('00000'+CONVERT(varchar(10), S_POIDS_ADD4),6) gelées," +... " Right('00000'+CONVERT(varchar(10), S_POIDS_ADD5),6) corps_etrangers," +... " Right('00000'+CONVERT(varchar(10), CALCUL_POIDS_NET),5) CALCUL_POIDS_NET," +... " Right('00000'+CONVERT(varchar(10), ANALYSIS_RICHESSE),5) ANALYSIS_RICHESSE," +... " Right('00000'+CONVERT(varchar(10), CALCUL_POIDS_SUCRE),4) CALCUL_POIDS_SUCRE," +... " (case cast(TRANSPORTEUR as int)-cast(L.PLANTEUR as int)" +... " when 0 then 'AXE'" +... " else 'CUS'" +... " end) as TypeTransport," +... " Right('--'+CONVERT(varchar(10), PARMENTIERE),1) PARMENTIERE," +... " L.GRUE," +... " (case L.BET_DECROTTEE_YN" +... " when 0 then 'NON'" +... " else 'OUI'" +... " end) as BET_DECROTTEE_YN" +... " from LIV_BETTERAVES L, EMBLAVEMENT E" +... " where L.CAMPAGNE = "+ CAMPAGNE_USE + " " +... " and date_comptable_liv = {date}" +... " and L.EMBLAVEMENT = E.NUM_EMBLAVEMENT and E.PLANTEUR = L.PLANTEUR" //************************************************************************************************************************
maRequete est une Source de Données FILE_ID est un entier STR est une chaîne JourTraité est une Date = JOURNEE
BOUCLE G_REQUEST = Remplace(G_REQUEST_PROTOTYPE,"{date}",JourTraité) //Trace(G_REQUEST) G_RESULTAT = HExécuteRequêteSQL(maRequete,ISCAL_SQL,hRequêteSansCorrection,G_REQUEST) //G_RESULTAT = HExécuteRequêteSQL(maRequete,ISCAL_SQL,hRequêteSansCorrection,"Select * from LIV_BETTERAVES where date_comptable_liv = 20200110") SI G_RESULTAT = Vrai ALORS FILE_ID= fCrée(DEVICE+"\BIETDAG"+ JourTraité +".CSV") SI FILE_ID <> -1 ALORS fEcritLigne(FILE_ID,"date_comptable_liv;USINE;numero;planteur;NOM_PLANTEUR;région;EMBLAVEMENT;poids_entree;poids_sortie;POIDS_BRUT;heure_échantillonnage;S_poids_brut_1;S_poids_net_1;S_poids_brut_2;S_poids_net_2;CALCUL_TARE_COLLET;CALCUL_TARE_TOTALE;CALCUL_TARE_TERRE;terre;pierre;pourries;gelées;corps_etrangers;CALCUL_POIDS_NET;ANALYSIS_RICHESSE;CALCUL_POIDS_SUCRE;TypeTransport;PARMENTIERE;GRUE;BET_DECROTTEE_YN") HLitPremier(maRequete) //Info(maRequete.S_poids_brut_1) TANTQUE PAS HEnDehors(maRequete) STR = maRequete.date_comptable_liv + ";" + ... maRequete.Usine + ";" + ... maRequete.numero + ";" + ... maRequete.planteur + ";" + ... maRequete.NOM_PLANTEUR + ";" + ... maRequete.région + ";" + ... maRequete.EMBLAVEMENT + ";" + ... maRequete.poids_entree + ";" + ... maRequete.poids_sortie + ";" + ... maRequete.POIDS_BRUT + ";" + ... maRequete.heure_échantillonnage + ";" + ... maRequete.S_poids_brut_1 + ";" + ... maRequete.S_poids_net_1 + ";" +... maRequete.S_poids_brut_2 + ";" +... maRequete.S_poids_net_2 + ";" +... maRequete.CALCUL_TARE_COLLET + ";" +... maRequete.CALCUL_TARE_TOTALE + ";" +... maRequete.CALCUL_TARE_TERRE + ";" +... maRequete.terre+ ";" +... maRequete.pierre+ ";" +... maRequete.pourries+ ";" +... maRequete.gelées+ ";" +... maRequete.corps_etrangers+ ";" +... maRequete.CALCUL_POIDS_NET+ ";" +... maRequete.ANALYSIS_RICHESSE+ ";" +... maRequete.CALCUL_POIDS_SUCRE+ ";" +... maRequete.TypeTransport+ ";" +... maRequete.PARMENTIERE+ ";" +... maRequete.GRUE+ ";" +... maRequete.BET_DECROTTEE_YN fEcritLigne(FILE_ID,STR) HLitSuivant(maRequete) FIN fFerme(FILE_ID) JourTraité ++ SINON Erreur("Impossible de créer le fichier à la date du " + JourTraité) SORTIR FIN SINON Erreur("Impossible d'obtenir les données à la date du " + JourTraité) FIN SI JourTraité > DateSys() ALORS SORTIR FIN Info("Les fichiers ont été créés") Ferme()
Meric d'avance pour votre aide, David |