IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

un gros fichier d'une table Paradox vide


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut un gros fichier d'une table Paradox vide
    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

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut
    Merci pour la réponse !!!

    ça fonctionne bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/11/2012, 00h45
  2. Comment importer un fichier xml ou csv dans une table paradox ?
    Par pierrot67 dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/09/2007, 15h35
  3. Réponses: 2
    Dernier message: 11/10/2006, 18h43
  4. [Ms SQL server 5.0] gros fichiers dans une table ou sur le DD?
    Par rastamath69 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/10/2006, 14h09
  5. Migration d'une table PARADOX
    Par DanielW dans le forum Débuter
    Réponses: 6
    Dernier message: 06/05/2004, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo