Bonjour à tous,
J'ai vidé mes tables de Paradox7 et leurs fichiers restent avec les mêmes volumes.
Comment puis je faire purger les fichiers aussi SVP
Merci
Bonjour à tous,
J'ai vidé mes tables de Paradox7 et leurs fichiers restent avec les mêmes volumes.
Comment puis je faire purger les fichiers aussi SVP
Merci
Utilise un dbiDoRestructure pour effectuer un Pack de la Table : Compactage de tables Paradox avec auto-incrément
Faudrait vérifier si EmptyTable ne fait ce boulot !
Parce que j'ai dans un vieux code ceci
Mes tables pouvaient souvent être vide, ce n'était que de stockage local avec une durée de quelques heures (ou j'ai presque utilisé Paradox en 2003 comme une DB embarquée)
Si j'avais écrit ce code, je pense qu'il était fonctionnel à l'époque de Delphi 6 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 //---------------------------------------------------------------------------------------------------------------- procedure CompactageTableVide(); var i : Integer; FlagVide : Boolean; begin // La liste Components contient les Objets dépendant loqiquement (mémoire) de leur propriétaire (Owner) for i := 0 to DMServeur.ComponentCount - 1 do begin if DMServeur.Components[i] is TTable then begin try TTable(DMServeur.Components[i]).Close(); TTable(DMServeur.Components[i]).Open(); FlagVide := TTable(DMServeur.Components[i]).RecordCount = 0; TTable(DMServeur.Components[i]).Close(); if FlagVide then begin TTable(DMServeur.Components[i]).EmptyTable(); end; except FichierLog('EXCEPT', 'CompactageTableVide', Exception(ExceptObject).Message); end; end; end; end; //---------------------------------------------------------------------------------------------------------------- procedure ThreadCompactageTableVide(); begin try // Suspend l'éxecution des Threads // - Processus (Thread) d'Analyse des Messages reçus depuis Contrôle Maître de Tri(Sandvik) if Assigned(TreatThread) then begin TreatThread.Suspend(); end; // - Processus (Thread) d'envoi des fichiers par FTP selon la liste d'exportation if Assigned(FTPExportThread) then begin FTPExportThread.Suspend(); end; // - Processus (Thread) d'envoi des fichiers par FTP selon la liste d'exportation if Assigned(FTPImportThread) then begin if FTPImportThread.TypeImport = 0 then begin FTPImportThread.Free(); FTPImportThread := nil; end else begin FTPImportThread.Suspend(); end; end; CompactageTableVide(); // Reprend l'éxecution des Threads // - Processus (Thread) d'Analyse des Messages reçus depuis Contrôle Maître de Tri(Sandvik) if Assigned(TreatThread) then begin TreatThread.Resume(); end; // - Processus (Thread) d'envoi des fichiers par FTP selon la liste d'exportation if Assigned(FTPExportThread) then begin FTPExportThread.Resume(); end; // - Processus (Thread) d'envoi des fichiers par FTP selon la liste d'exportation if Assigned(FTPImportThread) then begin if FTPImportThread.TypeImport = 0 then begin FTPImportThread.Free(); FTPImportThread := nil; end else begin FTPImportThread.Resume(); end; end; except FichierLog('EXCEPT', 'ThreadCompactageTableVide', Exception(ExceptObject).Message); MessageDlg('Le Compactage de la Base de Données a provoqué une Erreur : '#13#10#13#10 + Exception(ExceptObject).Message+#13#10#13#10'Le Serveur TSF va se Fermer, Veuillez le relancer !', mtError, [mbAbort], 0); FrmServeur.Close(); end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 //---------------------------------------------------------------------------------------------------------------- procedure TFrmServeur.BtnCompactageDataBaseClick(Sender: TObject); begin if MessageDlg('Attention !'#13#10#13#10'Etes-vous sûr d''effectuer un Nettoyage (Compactage) de la Base de Données'#13#10#13#10'Voulez-vous continuez ?', mtConfirmation, [mbYes, mbNo], 0 ) = mrYes then begin TimerEvent.Enabled := False; try if CanCloseServeur() then begin ThreadCompactageTableVide(); MessageDlg('Le Nettoyage (Compactage) de la Base de Données est Terminé ! ', mtInformation, [mbOK], 0 ); end else begin MessageDlg('Le Nettoyage (Compactage) de la Base de Données est Impossible pour le moment ! ', mtWarning, [mbAbort], 0 ); end; finally TimerEvent.Enabled := True; end; end; PageControlVue.SetFocus(); end;
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager