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

Langage Delphi Discussion :

Restauration d'une BDD


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restauration d'une BDD
    Bonjours à tous

    Je travaille sous DELPHI 7 Studio avec Firedird 1.5

    J'utilise une procédure SaveDialog qui sauvegarde (à la demande) ma Base de Données. Cela fonctionne très bien. Elle me crée un .fbk

    Maintenant, je voudrais (ce qui peut servir) pouvoir restaurer cette Base. Je suis tombé par hasard sur une fonction, mais comme j'avais autre chose sur le feu j'ai zappé. Et je n'arrive plus à metre la main dessus. J'ai essay dans l'aide Delphi par le mot clé Restore et rien. J'ai cherché dans les FAQ, mais le IBRestore que j'ai trouvé, à priori ne marche pas ans ma configuration.

    Une idée ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 202
    Points : 41 443
    Points
    41 443
    Billets dans le blog
    63
    Par défaut
    je te suggère d'utiliser les composants de UIB , d'un part tu auras un vrai GBAK de ta base (sauvegarde et/ou Restore )pas une copie comme j'en ai l'impression .
    SaveDialog fait une simple copie de fichier donc le Restore serait CopyFile ?

  3. #3
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restaurer un BDD
    SergioMaster, Bonjour

    Tu écris UIB : j'ai trouvé IIB. J'essaye IIB mais s'il existe des UIB, où sont-ils ?

    Merci d'avance. Si j'obtiens ce que je veux, je le signale aussitôt

  4. #4
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restaurer une BDD
    A priori celà marche

    A postériori, c'est moins évident : la sauvegarde (ou la restauration) me perd toutes les Vues, toutes le procédures et tous les Triggers; Plutôt génant. Mais peut être qu'il manque un paramètre. J'ai bien vu la propriété Options, mais aucune explication.

    La procédure que j'ai utilisée est tout bêtement celle proposée dans les FAQ, je n'ai changé que les noms des bases.

    Quid

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    Citation Envoyé par JP.NUAGE Voir le message
    La procédure que j'ai utilisée est tout bêtement celle proposée dans les FAQ, je n'ai changé que les noms des bases.
    de quelle FAQ s'agit il ? ce serait bien de poster le lien vers la FAQ utilisée.

  6. #6
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Je l'ai trouvé en tapant ibx.hlp sur

    http://www.developpez.com/delphi/faq/?page=interbase

    Après c'est dans le sommaire : comment sauvegarder,restaurer

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 202
    Points : 41 443
    Points
    41 443
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par JP.NUAGE Voir le message
    SergioMaster, Bonjour

    Tu écris UIB : j'ai trouvé IIB. J'essaye IIB mais s'il existe des UIB, où sont-ils ?

    Merci d'avance. Si j'obtiens ce que je veux, je le signale aussitôt
    non je parlais bien des UIB ICI(jvUIB serait peut-être le nom plus exact puisque inclus dans la JVCL JVCL)

    Attention également , les composants pour Interbase ne sont pas péconnisés pour FireBird (je dirai qu'ils fonctionnent sauf pour Sauvegarde/restauration de la Base, je mais c'est apparemment vrai) s'agit-il d'une rumeur

  8. #8
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restauration d'une BDD
    Bon Dimanche à tous

    Envoyé par SergioMaster
    non je parlais bien des UIB ICI(jvUIB serait peut-être le nom plus exact puisque inclus dans la JVCL)
    J'ai bien trouvé JVCL, mais des UIB y figurent en quantité industrielle. Et quel que soit le package que je veux installer, Delphi refuse de me donner la liste des .pas qu'il contient. Alors est-ce parce que je travaille en CLX et non en VCL ?

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 202
    Points : 41 443
    Points
    41 443
    Billets dans le blog
    63
    Par défaut
    AH ! Oui, j'avais pas tilté sur le fait que tu travailles en CLX . Cependant il me semble que la JVCL est 'portable' ou a tout le moins les UIB mais va falloir chercher dans les inc et compagnie ....... bon dimanche

  10. #10
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restauration d'une BDD


    J'ai bien récupéré JVCL version 3.31 (Apparament la Version 3.33 n'est pas installable). J'ai bien coché les options pour CLX. Il s'est passé quelque chose. Quoi ? Je ne saurais le dire. Mais j'ai eu un message 'Installation réussie"

    En revanche, dans ma barre d'objets je ne trouve toujours pas de UIB

    Qu'ai-je oublié de faire ?

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 202
    Points : 41 443
    Points
    41 443
    Billets dans le blog
    63
    Par défaut
    LOL je crois que dans la version 3.31 de la jvcl UIB était otée , enfin je sais que dans une des versions c'etait le cas , je me suis appercu que mon premier lien sur UIB ne fonctionnait plus donc je le remet en clair http://www.progdigy.com et en lien http://www.progdigy.com .
    Je viens de relire leur description , c'est compatible Kylix donc CLX ?

    Apparemment la Version 3.33 n'est pas installable


    [EDIT] je viens de vérifier ,sur un ancien téléchargement, la version 3.31 les UIB existent bel et bien , en clx , pour D7 (repertoire jvcl\packages\d7clx) ce qui voudrait dire que l'install ne le fait pas en auto ou que tu as raté quelque chose , rien ne t'empêches de les installer à la main (JVQUIBD7R.dpk et JVQUIBD7D.dpk )

  12. #12
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut


    Je pette les plombs. Et encore je reste assez poli

    Si j'essaye d'installer à la main à partir de jvcl 3.31, il me manque JvQExButtons.dcu ! (J'ai beau chercher dans tous mes répertoires, que dale comme on dit dans le Midi) Si j'essaye à partir de progdigy.com, il me manque aussi quelque chose (je n'ai pas noté tellement j'étais dégouté)

    Alors je reviens à ma question première et à la suggestion de SergioMaster.

    Envoyé par SergioMaster :
    je te suggère d'utiliser les composants de UIB , d'un part tu auras un vrai GBAK de ta base (sauvegarde et/ou Restore )pas une copie comme j'en ai l'impression .
    SaveDialog fait une simple copie de fichier donc le Restore serait CopyFile ?
    J'ai refait une sauvegarde avec SaveDialog. C'est bien un .gbk que j'obtiens car je peux faire un restaure à partir d'IBExpert sur le fichier créé. En revanche IBExpert ne peut pas l'ouvrir en tant que base normale. Donc un Copy File ne donnerait rien. J'ai essayé !

    Et s'il existe un Save, il doit bien exister quelque part un Restaure. Je suis en plus pratiquement certain de l'avoir vu et même d'avoir essayé de l'utiliser. Mais impossible de remettre la main dessus

    Parceque là, je ne vois pas comment je vais pouvoir travailler avec les UIB !


  13. #13
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restaurer une base de donnée


    J'ai retrouvé ! Bon c'est pas gagné complètement mais j'ai remis la main sur ce que j'avais vu une fois. Donc pour l'instant, je ferme la discussion en attendant de nouveaux soucis.

    Merci en tout cas à tous ceux qui ont bien voulu me consacrer du temps

  14. #14
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 104
    Points
    19 104
    Par défaut
    Je confirme que ls composants IBX effectue bien un backup correct de FireBird, en fait comme sous interbase le composant ne fai que lancer le service en question sur le serveur.

    Je ne me suis jamais posé la question du restore par contre, car je fais toujours le restore via un outil d'admin (IBConsole pour Interbase ou FlameRobin pour FireBird). Vu que le restore ne peut être fait que base arrétée...

  15. #15
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restauration de BDD
    Envoyé par Nono40:
    je fais toujours le restore via un outil d'admin :
    Ca c'est une remarque fort judicieuse. Pour être bien sûr. Imaginons que je doive restaurer une base FireBird pour une appli et ce en catastrophe (c'est la cas pour moi) : si je fais un Close sur le SQLConnection, le Restaure, puis une reconnection, ça devrait fonctionner. Correct ?

    Dans mon environnement, demander à mes clients de faire un restaure par IBExpert ou tout autre, bonjour

  16. #16
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restaurer une BDD


    Je sens que je m'approche du but, mais là je but....te sur une bêtise. Voici le code

    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
    with IBRestoreService1 do
      begin
        ServerName := 'LocalHost';
        LoginPrompt := False;
        Params.Add('user_name=sysdba');
        Params.Add('password=masterkey');
        Active := True;
        try
          Verbose := False;
          Options := [DeactivateIndexes, NoValidityCheck, CreateNew, UseAllSpace];
          PageBuffers := 3000;
          PageSize := 4096;
          Protocole := 'TCP';
          DatabaseName.Add('c:\XXX\DATABASE.FDB');
     
          BackupFile.Add('c:\XXX\YYY\DATABASE.fbk');
          ServiceStart;
        finally
          Active := False;
        end;
      end;
    end;
    j'ai le message suivant

    Pas assez de paramètres originaux
    et le curseur pointe sur la virgule qui suit CreateNew, <--- ici

    Si j'enlève CreateNew, la compile passe, mais je ne restaure rien.

    J'ai fait des tentatives en enlvant ou en ajoutant d'autres options, et j'ai toujours ce même message dès que je colle CreateNew

    Une idée par-ci par-là ?

  17. #17
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut
    Citation Envoyé par JP.NUAGE Voir le message
    J'ai fait des tentatives en enlvant ou en ajoutant d'autres options, et j'ai toujours ce même message dès que je colle CreateNew
    La valeur du paramètre est CreateNewDB (et non CreateNew comme indiqué dans la doc de D7). CreateNew est une méthode de TCustomForm d'où le message du compilo: pas assez de paramètres.

    Ensuite ne mets pas de guillemets autour de TCP pour préciser le protocole:
    @+ Claudius

  18. #18
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restaurer une BDD

    La grande sollitude du programmeur !

    Bizarre, il me semblait avoir déjà envoyé une réponse et je ne la vois pas

    Envoyé par Cl@udius :
    Ensuite ne mets pas de guillemets autour de TCP pour préciser le protocole
    Oui, j'avais vu çà. Je l'avais corrigé sur mon source, hélas le copié/collé était déjà parti. Désolé pour cette erreur stupide sur un message !

    Le TCP tiens, parlons en

    Voici le code :

    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
    with IBRestoreService1 do
      begin
        FRM_DM_DOSS_COM.SQLConnection.Close;
        ServerName := 'LocalHost';
        LoginPrompt := False;
        Params.Add('user_name=sysdba');
        Params.Add('password=masterkey');
        Active := True;
        try
          Verbose := True;
          Options := [DeactivateIndexes, NoShadow, NoValidityCheck,
                          OneRelationAtATime,CreateNewDB, UseAllSpace];
          PageBuffers := 3000;
          PageSize := 4096;
          Protocol := TCP;
          DatabaseName.Add('c:\NVBASE.FDB');
     
          BackupFile.Add('c:\SAUVEGARDE\FICHIER.fbk');
          ServiceStart;
        finally
          Active := False;
        end;
      end;
    Ok à la compile. A l'exécution c'est moins bon

    Opération impossible ---- le service est attaché


    J'ai vérifié en débuggant au pas à pas : il plante sur l'ordre Protocole. Si je l'enlève, le restaure passe, mais (car il y a un mais) ...perdues les Views, perdues les Procédures, perdus les Triggers !

    Astérix le Gaulois, page 1 :
    Alors César s'interroge : Quid ?

  19. #19
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Pour le protocol, effectivement je n'avais pas relevé , il faut le préciser avant d'activer le service:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with IBRestoreService1 do
      begin
        FRM_DM_DOSS_COM.SQLConnection.Close;
        ServerName := 'LocalHost';
        LoginPrompt := False;
        Params.Add('user_name=sysdba');
        Params.Add('password=masterkey');
        Protocol := TCP;  // <- ici
        Active := True;
        try
          // ...
    Quant à la perte des triggers et le reste !! En théorie les compos Backup/Restore d'IBX sont encore compatible avec Firebird.
    Je vais essayé de faire quelques tests....

    @+ Claudius

  20. #20
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Restaurer une BDD




    Cà y est ! Avec le bon positionnement de Protocole, tout revient

    Merci encore à tous. Maintetnant si quelqu'un à des Pb de BackUp/Restaure, je connais. Ah oui, j'ai donné !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/05/2015, 10h39
  2. [2008] problème restaurer une BDD
    Par win_ubuntu dans le forum Administration
    Réponses: 3
    Dernier message: 28/02/2013, 08h31
  3. [SQL] Sauvegarde et restauration d'une partie de BDD en XML
    Par Ministar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/10/2007, 13h38
  4. [SQL 2K] Restauration d'une bdd a partir d'un fichier
    Par exopartners dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/05/2006, 20h04
  5. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18

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