Bonjour,
Voilà le contexte : [Delphi 10.3] une table en mémoire ( article,quantité ) qui est remplie par programme et la nécessité d'obtenir un résumé de celle-ci. (total_article).
La solution 1 consiste bien sûr à faire un bout de code genre
ce qui revient à un SQL SELECT SUM(quantité) Total_article FROM tablememoire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 tablememoire.first; var total_article: integer :=0; while not tablememoire.eof do begin total_article:=total_article+teblememoirequantité.asinteger; tablememoire.next; end;
J'ai donc voulu utiliser TFDLocalSQL pour éviter le code,(est-ce que ce sera plus rapide ? je n'en sais rien). J'ai donc ajouter une connexion SQLite (sans base de données donc "mémoire") un TFDLocalSQL avec la table memoire déclarée comme dataset et donc ma requête. Un test en mode design, c'est nickel.
Passons à l'exécution, nickel également, le résultat est là jusqu'à ce que je ferme l'application qui me donne une erreur de pointeur non alloué
Dés que l'on isole la partie LocalSQL tout fonctionne normalement, conclusion il s'agit de cette "chaine" de composants qui déconne. Comme celle-ci nécessite un ordre précis de construction j'en ai conclu qu'il fallait clore en sens inverse cad la requête, le FDLocalSQL, la connexion SQLite puis la table mémoire.
Malgré ces étapes j'ai toujours cette erreur . Ayant d'autres utilisations de FDLocalSQL hors tables en mémoire (généralement sur des tables de 2 bases de données) sans aucun problème, je ne vois pas d'où peut venir mon souci.
Donc, si vous avez utilisé ce genre de FDLocalSQL sur table en mémoire, que vous n'avez pas expérimenté cette erreur, quelle bourde ai-je commis ?
Partager