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 :

IBRestoreService, D6 et FB 1.5


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 84
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2002
    Messages : 172
    Par défaut IBRestoreService, D6 et FB 1.5
    Bonsoir,
    En suivant les indications de l'aide en ligne, je construis une sauvegarde suivie d'une restauration.
    La sauvegarde fonctionne dans toutes les situations.

    La restauration dont voici le code (copié dans l'aide) fonctionne au pas à pas seulement.
    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
       with IBRestoreService1 do
        begin
          ServerName := 'localhost';
          LoginPrompt := False;
          params.Clear;
          Params.Add('user_name=SYSDBA');
          Params.Add('password=masterkey');
          Active := True;
          try
            Verbose := false;
            Options := [Replace, UseAllSpace];
            PageBuffers := 3000;
            PageSize := 4096;
            databaseName.Clear;
            DatabaseName.Add(ch_fdb);
            backUpFile.Clear;
            BackupFile.Add(Uppercase(ch_fbk));
     
            ServiceStart;
          finally
            Active := False;
            if not dm_club.Connection_club.Connected
               then dm_club.Connection_club.Connected:=true;// ajout perso
            screen.Cursor:=crdefault;
          end;
        end;
    A l'exécution, elle indique qu'elle ne parvient pas à ouvrir le fichier .DBK ...

    Merci de votre aide
    Lucien

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 947
    Par défaut
    On suppose bien sûr que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BackupFile.Add(Uppercase(ch_fbk));
    est valablement renseigné ?

    Que contient ch_fbk ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 84
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2002
    Messages : 172
    Par défaut
    ch_fbk contient le chemin absolu et le nom du fichier backup,
    identifié lors de l'installation et mémorisé dans le registre. D'ailleurs le message d'erreur (impossible d'ouvrir...) contient bien ce chemin !

    Il semble que le pb soit ailleurs, puisque tout fonctionne au pas à pas en débogage...!

    Lucien

    PS Comme il semble s'agir d'un problème de temps système, j'ai ajouté
    entre la sauvegarde et la restauration...C'est barbare mais cela fonctionne

    Merci à vous
    Lucien

  4. #4
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Il faut croire que l'exemple donné est faux .

    Mais vous avez eut du nez avec votre sleep(1000).

    En effet, après StartService, la restauration commence immédiatement mais la main est rendue au programme (sans attendre la fin de la restauration).

    Donc votre sleep(1000) permet une attente suffisante mais qu en sera t il quand votre base à restaurée sera plus importante ?

    Heureusement il y a une solution :

    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
       with IBRestoreService1 do
        begin
          ServerName := 'localhost';
          LoginPrompt := False;
          params.Clear;
          Params.Add('user_name=SYSDBA');
          Params.Add('password=masterkey');
          Active := True;
          try
            Verbose := false;
            Options := [Replace, UseAllSpace];
            PageBuffers := 3000;
            PageSize := 4096;
            databaseName.Clear;
            DatabaseName.Add(ch_fdb);
            backUpFile.Clear;
            BackupFile.Add(Uppercase(ch_fbk));
     
            ServiceStart;
            While IsServiceRunning do 
               Sleep(10);
          finally
            Active := False;
            if not dm_club.Connection_club.Connected
               then dm_club.Connection_club.Connected:=true;// ajout perso
            screen.Cursor:=crdefault;
          end;
        end;
    Ou même si vous souhaitez afficher dans un mémo la progression de l'opération :

    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
     
       Memo1.Clear;
       with IBRestoreService1 do
        begin
          ServerName := 'localhost';
          LoginPrompt := False;
          params.Clear;
          Params.Add('user_name=SYSDBA');
          Params.Add('password=masterkey');
          Active := True;
          try
            Verbose := false;
            Options := [Replace, UseAllSpace];
            PageBuffers := 3000;
            PageSize := 4096;
            databaseName.Clear;
            DatabaseName.Add(ch_fdb);
            backUpFile.Clear;
            BackupFile.Add(Uppercase(ch_fbk));
     
            ServiceStart;
            While Not EOF do 
               Memo1.Lines.Add(GetNextLine);
          finally
            Active := False;
            if not dm_club.Connection_club.Connected
               then dm_club.Connection_club.Connected:=true;// ajout perso
            screen.Cursor:=crdefault;
          end;
        end;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 84
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2002
    Messages : 172
    Par défaut
    Merci Barbibulle,
    Oui, j'ai flairé le pb sans le connaître,
    j'apporte la correction immédiatement.

    Autre difficulté ! la main est rendue et l'appli reste déconnectée, dans mon code.....?

    Y a-t-il une réponse à cette cascade de conséquences ?

    Lucien

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

Discussions similaires

  1. [FB 1.5] IBRestoreService et ShutDown
    Par jlf dans le forum Connexion aux bases de données
    Réponses: 15
    Dernier message: 27/10/2007, 01h44

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