Probléme dans Query

Signaler
Messages postés
19
Date d'inscription
vendredi 21 août 2009
Statut
Membre
Dernière intervention
22 février 2018
-
Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
-
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

Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
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
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
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.
Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
10
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