Probléme dans Query

yacinew Messages postés 18 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 22 février 2018 - 19 févr. 2012 à 23:07
solilog Messages postés 273 Date d'inscription samedi 13 juin 2009 Statut Membre Dernière intervention 18 avril 2015 - 27 févr. 2012 à 21:02
Bonjour,
J'ai crée une petite application qu'utilise une BDD de type DBF(la taille est 25 MO)
et les compansant (Query,Dbgrid,et 3 buttons)
pour chaque clic sur l'un des bottons j'ai fait ça
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select* from Incident.DBF where DD=''OR''');
Prepare;
open;
end;


mon Problème c'est a la fin g'ai remarquée que la taille du fichier du programme a augmenter 100 Mo, et j'ai trouver a l'intérieure du répertoire de projet des fichiers ("_QSQL312.DBF") avec une taille 25 MO;
Comment je peut éviter ça ...!!
Merci

3 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
20 févr. 2012 à 15:40
bonjour,
la requête SQL doit déclencher une erreur se traduisant par l'écriture
du fichier _QSQL312.DBF qui est un log pour dbf.
l'augmentation de la taille de l'exe est en revanche curieuse...

en tout cas, il faut débugger le code du bouton en mettant des points d'arrêts et tester les variables et voir aussi ce qui s'affiche dans le grid.

avec aussi peu d'information, désolé, on ne peut aller plus loin.

cantador
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
24 févr. 2012 à 14:48
Salut,

"mon Problème c'est a la fin g'ai remarquée que la taille du fichier du programme a augmenter 100 Mo"
- Tu as dû choper un virus ou autre!

"et j'ai trouver a l'intérieure du répertoire de projet des fichiers ("_QSQL312.DBF") avec une taille 25 MO;
Comment je peut éviter ça ...!! "
- Tu peux pas.

A+

Composants Cindy pour Delphi
Faites une donation.
0
solilog Messages postés 273 Date d'inscription samedi 13 juin 2009 Statut Membre Dernière intervention 18 avril 2015 10
27 févr. 2012 à 21:02
Bonsoir,
certains (mauvais) drivers .DBF peuvent créer des fichier _QSQLxxx.dbf temporaires qui sont des copies des résultats de ta requête "select ...".
- tu peux minimiser les selects. tu ne fait qu'1 seul fois sql.add('select...') en début de prog ou dans un form.create et dans ton bouton tu fais simplement un refresh ou un close/open ... et tu "ne devrais" avoir qu'1 seul _QSQLxxx.dbf (pas sûr)
- tu devras toujours supprimer ces fichiers _QSQLxxx.dbf en fin de programme, ça peut s'automatiser dans une proc de finalization.
- si tu utilises des ttable au lieu de tQuery tu ne devrais pas avoir de fichiers temporaires, sinon change de driver DBF, y en a plein.
- tu augmentes la taille de ton .exe à chaque click ??? là t'as fumé la moquette ou alors t'as un problème avec ton compilateur.
Je te suggère de passer à Firebird, MySql, Interbase, voir MsAccess ou Paradox, mais les drivers .dbf ils commencent à se faire vieux.
bon courage.
solilog
0
Rejoignez-nous