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 :

Compacter une BD Access - ADO


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Compacter une BD Access - ADO
    Bonjour à tous,

    J'utilise la méthode ADO pour gérer une BD Access. J'ai évidemment un composant TADOConnection avec tour ce qu'il faut pour gérer cette base de données.

    Comment faire pour compacter cette base de données via ADO?

    Merci à l'avance pour la réponse,

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Le procédé permettant de compacter un base de données Access se trouve dans la FAQ je pense (Sur le site en tout cas).


    Dans le menu Projet --> importer une bibliothèque de types.
    Selectionner la bibliothèque de types "Microsoft Jet and replication Object...".
    Je pense qu'ensuite il faut cliquer sur le bouton "Installer" (A confirmer).
    Après cela, tu auras 2 nouveaux composants.

    Je pense que faut utiliser le TJetEngine pour le compactage.

    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JetEngine1.CompactDataBase('Chemin_DB','New_Chemin_DB');
    Il va te créer une nouvelle base de données compacté (faudra supprimer l'ancienne).

    Voilà, si tu souhaites plus d'info, je t'invite à regarder dans la Faq Delphi et dans ses tutoriels.

    Bonne chance.

  3. #3
    Membre émérite
    Avatar de NoisetteProd
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    1 905
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 905
    Points : 2 614
    Points
    2 614
    Par défaut
    Salut,

    Tout d'abord, cette question devrait être dans Delphi&Base de données....

    Ceci dis, il y a plus simple il me semble :
    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
    function CompactDB(DB: string): Boolean; {DB = path complet de la base Access} 
    // Ajouter ComObj dans les Uses 
    var 
      v: OLEvariant; 
    begin 
      Result := True; 
      try 
        v := CreateOLEObject('JRO.JetEngine'); 
        try 
          if CopyFile(PAnsiChar(DB),PAnsiChar(DB+'.bak'),False) then //backup de la base 
          begin 
          V.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB, 
                            'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB+'comp;'); //compactage 
          DeleteFile(DB);// suppression de la base d'origin 
          RenameFile(DB+'comp',DB); // mise en place de la base compactée 
          end; 
        finally 
          V := Unassigned; 
        end; 
      except 
        Result := False; 
      end; 
    end;
    A+
    Noisette
    Fais cogiter ta Noisette !!

    Participez à la page SOURCES Delphi !

    Découvrez le Défi Delphi

    Mon Mail

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci à vous 2 pour vos solutions! J'ai préféré la solution de Noisette étant donné que je nous voulais rien ajouter à mon référentiel.

    Merci encore,

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

Discussions similaires

  1. [C#] Comment compacter une db access
    Par squale32 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/05/2009, 09h52
  2. comment réparer et compacter une base access sous vb6
    Par rallain dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/11/2006, 10h42
  3. [C#] Comment compacter une db access
    Par squale32 dans le forum Access
    Réponses: 6
    Dernier message: 30/09/2006, 01h31
  4. Comment compacter une base Access avec ADO ?
    Par langela94 dans le forum VBA Access
    Réponses: 3
    Dernier message: 08/12/2005, 16h24

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