|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Affichage de ##### dans une partie de la table mémoire |
Débuté par minsk, 02 aoû. 2019 15:24 - 14 réponses |
| |
| | | |
|
| |
Posté le 02 août 2019 - 15:24 |
Bonjour,
J'utilise une table mémoire basée sur une requête.A l'exécution, je transforme la source de la table en une source basée sur la même requête écrite avec plusieurs autres paramètres et que j'exécute avec HExécuteRequêteSQL.
Il ne devrait pas y avoir de problème, seulement voilà,la table affiche les 24 premiers enregistrements sur 70 et toutes les autres lignes sont ##### sur toutes les colonnes.
Qu'est ce qui pourrait en être la cause ?
merci d'avance pour vos réponses |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 846 messages Popularité : +227 (347 votes) |
|
Posté le 04 août 2019 - 10:02 |
Bonjour, 1-Pourrait-on avoir le code de ta "Transformation" 2-Combien de lignes sont affichées dans ton champ table ? 24 ?
-- Il y a peut être plus simple, mais, ça tourneMessage modifié, 04 août 2019 - 10:03 |
| |
| |
| | | |
|
| | |
| |
Posté le 04 août 2019 - 16:09 |
Bonjour, merci de ton apport
Là, il s'agit de la requête source initiale de la table
SELECT SORTIE_STOCK_MATIERE.IDBASE, SORTIE_STOCK_MATIERE.IDSORTIE_STOCK_MATIERE, SORTIE_STOCK_MATIERE.Date_sortie_matiere, SORTIE_STOCK_MATIERE.Enregistre_par, SORTIE_STOCK_MATIERE.Observations, SORTIE_STOCK_MATIERE.Reference_sortie_matiere, BASE.Nom_Base FROM SORTIE_STOCK_MATIERE,BASE WHERE SORTIE_STOCK_MATIERE.IDBASE = BASE.IDBASE AND SORTIE_STOCK_MATIERE.Date_sortie_matiere >= {param_date_debut} AND SORTIE_STOCK_MATIERE.Date_sortie_matiere < {param_date_fin} ORDER BY Date_sortie_matiere,Reference_sortie_matiere ASC
Maintenant le code de modification
ls_sourceDeDonnees est une Source dede Données param1,param2,param3 est une chaîne = ""
param1 = "AND SORTIE_STOCK_MATIERE.Date_sortie_matiere >= '"+pd_date_debut+"'" param2 = "AND SORTIE_STOCK_MATIERE.Date_sortie_matiere < '"+pd_date_fin+"'" SI Combo_base..ValeurAffichée <> "" ALORS param3 = "AND SORTIE_STOCK_MATIERE.IDBASE = '" + Combo_base..Valeur +"'" FIN
ls_chaineDeDonnees est une chaîne =[ SELECT SORTIE_STOCK_MATIERE.IDBASE, SORTIE_STOCK_MATIERE.IDSORTIE_STOCK_MATIERE, SORTIE_STOCK_MATIERE.Date_sortie_matiere, SORTIE_STOCK_MATIERE.Enregistre_par, SORTIE_STOCK_MATIERE.Observations, SORTIE_STOCK_MATIERE.Reference_sortie_matiere, BASE.Nom_Base FROM SORTIE_STOCK_MATIERE,BASE WHERE SORTIE_STOCK_MATIERE.IDBASE = BASE.IDBASE %1 %2 %3 ORDER BY Date_sortie_matiere DESC ]
ls_chaineDeDonnees = ChaîneConstruit(ls_chaineDeDonnees,param1,param2,param3)
Table_sortie_stock_matiere..FichierParcouru = ls_sourceDeDonnees SI PAS HExécuteRequêteSQL(ls_sourceDeDonnees,hRequêteDéfaut,ls_chaineDeDonnees) ALORS Erreur(HErreurInfo()) RETOUR FIN TableAffiche(Table_sortie_stock_matiere)
Le seul paramètre qui s'est ajouté à part les dates c'est IDBASE. La requête devrait normalement renvoyer 70 résultats mais elle affiche uniquement 48 résultats dans la table dont 24 lignes parfaitement normales et 24 autres contenant uniquement des #
Je précise qu'en passant le remplissage de la table par programmation tout fonctionne normalement avec le résultat de cette même requête transformée. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 846 messages Popularité : +227 (347 votes) |
|
Posté le 05 août 2019 - 13:23 |
Une petite précision : comme ton champ table est relié à une requête on est dans le cas d'une table fichier.
En fait, ta requête modifiée ne sert qu'à filtrer ta recherche en fonction de IDBase. Pourquoi ne pas utiliser la requête suivante comme source initiale ?
SELECT SORTIE_STOCK_MATIERE.IDBASE, SORTIE_STOCK_MATIERE.IDSORTIE_STOCK_MATIERE, SORTIE_STOCK_MATIERE.Date_sortie_matiere, SORTIE_STOCK_MATIERE.Enregistre_par, SORTIE_STOCK_MATIERE.Observations, SORTIE_STOCK_MATIERE.Reference_sortie_matiere, BASE.Nom_Base FROM SORTIE_STOCK_MATIERE,BASE WHERE SORTIE_STOCK_MATIERE.IDBASE = BASE.IDBASE AND SORTIE_STOCK_MATIERE.Date_sortie_matiere >= {param_date_debut} AND SORTIE_STOCK_MATIERE.Date_sortie_matiere < {param_date_fin} AND SORTIE_STOCK_MATIERE.IDBASE = {pBaseSélectionnée} ORDER by Date_sortie_matiere,Reference_sortie_matiere Asc et de passer Null ên 3° paramètre dans l'initialisation de la requête. (Null correspond au joker dans ce cas). En poussant un peu plus le vice, on peut cocher "Null si vide" dans la partie "Détail" de la description de Combo_Base. Si les paramètres sont liés à des champs de saisie le passage de "Null" se fera alors sans douleur.
En ce qui concerne ton code, je me demande si le problème ne vient pas de l'utilisation des simples cotes. Dans ce cas, pourquoi le problème n'est-il pas global ? J'avoue que je sèche peut être le mode d'accès (chargé en mémoire ou accès direct)
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Posté le 06 août 2019 - 00:19 |
Le mode d'accès est "chargé en mémoire"
J'avoue que je ne sais vraiment pas d'où vient le problème.Je crois que pour le moment je vais le contourner en passant par le remplissage par programmation (là ça marche).Je continuerai tout de même à rechercher une solution.
Merci pour ton apport, je reviendrai dès que j'aurai du nouveau |
| |
| |
| | | |
|
| | |
| |
Posté le 29 octobre 2019 - 16:00 |
Bonjour,
je reviens pour dire que je n'ai pas pu résoudre le problème.Prochainement je tenterai en version 23 pour voir si le problème persiste. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 30 octobre 2019 - 08:48 |
@minsk As-tu vérifié que les données récupérées par ta requête était toutes correctes ?
La remarque faite par @Voroltinquo sur ta requête est plus qu'intéressante, ta table serait alors une table fichier et le problème ne se produirait peut-être pas.
Ta table n'était-elle pas une table fichier avec des liaisons multiples sur les colonnes auparavant ?
Regarde également la fonction ChampErreur() elle peut t'aiguiller sur le type d'erreur rencontré.
-- Cordialement,
Philippe SAINT-BERTINMessage modifié, 30 octobre 2019 - 08:54 |
| |
| |
| | | |
|
| | |
| |
Posté le 30 octobre 2019 - 18:23 |
Bonjour Philippe,
Les résultats de la requête sont corrects et il n'y a aucune erreur. J'ai dû pour forcer l'affichage,utiliser la technique suivante : récupérer la valeur de l'enregistrement qui est censé être le dernier dans la table avec la variable ls_chaine et là magie.
Table_sortie_stock_matiere..FichierParcouru = ls_sourceDeDonnees TableAffiche(Table_sortie_stock_matiere.)
li_resultat = HNbEnr(ls_sourceDeDonnees)
SI li_resultat > 0 ALORS ls_chaine est une chaîne = Table_sortie_stock_matiere.[li_resultat] ListeSelectPlus(Table_sortie_stock_matiere.,1) SINON ToastAffiche("Aucun résultat ne correspond à votre requête",toastCourt,cvMilieu,chCentre,BleuFoncé) RETOUR FIN Sablier(Faux)
ça contourne le problème mais ne m'avance pas quant à la cause et j'ai plusieurs ligne de codes avec des tables se remplissant sur ce principe donc galère |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 31 octobre 2019 - 09:06 |
tu es sur quelle version de windev ?
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Posté le 31 octobre 2019 - 14:47 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 31 octobre 2019 - 15:56 |
toutes les maj sont faites ?
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Posté le 31 octobre 2019 - 16:12 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 31 octobre 2019 - 16:33 |
alors là ca s'apparente à un joli bug. Tu as ce comportement tout le temps sur toutes les tables ?
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Posté le 31 octobre 2019 - 16:48 |
Toutes les tables remplies par cette méthode présentent ce comportement.Au début je ne l'avais pas remarqué mais dès que le nombre d'enregistrements a évolué le problème est apparu.C'est vraiment incompréhensible |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 566 messages Popularité : +222 (260 votes) |
|
Posté le 02 novembre 2019 - 20:24 |
est-ce que tu n'aurais pas un problème de mémoire ? Essaye des passer ton appli en 64 bits voir si cela règle ton problème
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|