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

Composants VCL Delphi Discussion :

Taille de sauvegarde null tant que application en marche


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Par défaut Taille de sauvegarde null tant que application en marche
    Bonjour,
    J'utilise le composant IBBackupService1 pour faire sauvegarde de ma base de données Interbase 7.5 avec delphi 7. La sauvegarde se passe bien mais j'ai remarqué que la taille du fichier sauvegardé = O Octets tant que mon application tourne et immediatement; si je ferme mon application, la taille change et tout est OK. J'ai donc essayé de fermer la BD et ses datasets et de l'ouvrir mais rien n'a faire.
    Voici ma procedure de sauvegarde !!!

    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
     
    PROCEDURE TFORM.Backup;
    var
      ChoixRepertoire : string;
    BEGIN
      WITH IBBackup DO
      BEGIN
       with Params do
        begin
        Clear;
        Add('user_name=sysdba');
        Add('password=masterkey');
       End;
       BackupFile.Text := ''; // on vide le backup
       Active := True;
       Verbose := true;  // indique que les logs seront visibles
       Options := [IgnoreLimbo];
       If SelectDirectory(ChoixRepertoire,[sdAllowCreate,sdPerformCreate,sdPrompt],0) Then
       BackupFile.Add(ChoixRepertoire + '\BD_' + IntToStr(DayOfTheMonth(Date)) + '-' + IntToStr(MonthOfTheYear(Date)) + '-' + IntToStr(YearOf(Date)) + '.GDB'); // stocke le fichier backup
       BASE_DONNEES.CloseDataSets;
       BASE_DONNEES.Connected:= False;
       Try
       Active := True;
       ServiceStart;     {lance le backup }
       ShowMessage('Sauvegarde OK');
       EXCEPT
       ShowMessage('Sauvegarde annulée');
       Active := False;
       End;
       BASE_DONNEES.Connected:= True;
      End;
    END;

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 132
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Salut.

    Je ne connais pas du tout ton truc mais, en voyant ce bout de code (mal indenté, au passage )
    Citation Envoyé par SOPSOU Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
         Try
           Active := True;
           ServiceStart;     {lance le backup }
           ShowMessage('Sauvegarde OK');
         EXCEPT
           ShowMessage('Sauvegarde annulée');
           Active := False;
         End;
         BASE_DONNEES.Connected := True;
      End;
    END;
    je me demande s'il ne manque pas un « ServiceStop ». Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
         Try
           Active := True;
           ServiceStart;     {lance le backup }
           ShowMessage('Sauvegarde OK');
           ServiceStop;  {ici ou avant le ShowMessage ?}
    Juste une idée comme ça...

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Par défaut
    Salut,
    Désolé pour cette indentation mal faite.
    Malheuresement, ta proposition ne marche pas mais m'a permet de voir ce que je voyais pas.
    En lient et place de
    ServiceStop
    qui marche pas, j'ai trouvé
    Detach()
    . D'ou le code suivant:

    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
     
    PROCEDURE TFORM.Backup;
    var
      ChoixRepertoire : string;
    BEGIN
        WITH IBBackup DO
        BEGIN
           with Params do
           begin
            Clear;
            Add('user_name=sysdba');
            Add('password=masterkey');
           End;
           BackupFile.Text := ''; // on vide le backup
           Active := True;
           Verbose := true;  // indique que les logs seront visibles
           Options := [IgnoreLimbo];
           If SelectDirectory(ChoixRepertoire,        [sdAllowCreate,sdPerformCreate,sdPrompt],0) Then
           BackupFile.Add(ChoixRepertoire + '\BD_' +  IntToStr(DayOfTheMonth(Date)) + '-' + IntToStr(MonthOfTheYear(Date)) + '-' + IntToStr(YearOf(Date)) + '.GDB'); // stocke le fichier backup
           BASE_DONNEES.CloseDataSets;
           BASE_DONNEES.Connected:= False;
           Try
             Active := True;
             ServiceStart;     {lance le backup }
             ShowMessage('Sauvegarde OK');
             Detach();
            EXCEPT
             ShowMessage('Sauvegarde annulée');
             Active := False;
            End;
         BASE_DONNEES.Connected:= True;
        End;
    END;



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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/01/2008, 17h47
  2. Exécuter mon application en tant que démon Unix
    Par Giovanny Temgoua dans le forum Langage
    Réponses: 1
    Dernier message: 28/09/2006, 22h20
  3. sauvegarde de fichiers en tant que blob
    Par ha_mido dans le forum Administration
    Réponses: 3
    Dernier message: 21/11/2005, 17h48
  4. [Application]"Ouvrir en tant que" automatique
    Par Giovanny Temgoua dans le forum Windows
    Réponses: 4
    Dernier message: 02/09/2004, 20h27
  5. Licence MySql en tant que BD dans une application web
    Par Volta dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 14h38

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