Bonjour
Voilà
J'ai une base firebird 2.5
svp, comment sauvegarder et restaurer une base de donnée firebird par programmation
Bonjour
Voilà
J'ai une base firebird 2.5
svp, comment sauvegarder et restaurer une base de donnée firebird par programmation
Bonjour ,
Cela va aussi dépendre de la version Delphi et des composants disponibles
néanmoins plusieurs solutions :
- Exécuter une ligne de commande avec GBAK <- toujours possible
- Installer et Utiliser les composants UIB <- très efficace , un seul bémol : il semble y avoir quelques difficultés en réseau (hétérogène) sur le lieu d'emplacement de sauvegarde , certaines options semblent ne pas fonctionner quand on sort des sauvegarde standards (options mend etc...)
- Avec Firedac (versions XE Entreprise et +) c'est possible <- pas encore essayé
- à Essayer (j'émets un doute version pro minimum ? ) avec les composants IBxxxxxxx (autre doute compatibilité ?)
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Code (à peine simplifié) de l'une de mes applications en production depuis 10ans actuellement sous Firebird 2.5
Pour le backup avec UIBBackup = TUIBBackup
C'est vraiment simple, lancée sur le poste serveur
Et la restauration avec UIBRestore1 = TUIBRestoreBegin
UIBbackup.Database:=Nom_de_la_Base;
UIBbackup.PassWord:='monMotdePasse' ;
UIBbackup.UserName:='SYSDBA';
UIBBackup.Verbose:=true;
UIBbackup.BackupFiles.Clear;
UIBbackup.BackupFiles.add('MaSauvegarde.GBK'));
UIBbackup.Run;
End
// Avec OnVerbose de UIBBackup pointant sur
procedure TF_Maintenance.UIBBackupVerbose(Sender: TObject; Message: string);
begin
Memo1.Lines.Add(Message);
end;
Voilà bonne journéefunction TF_Maintenance.Restore: boolean;
begin
Screen.Cursor := crHourglass;
dm2.UIBDatabase.Connected:=False;
UIBrestore1.BackupFiles.Clear;
UIBrestore1.BackupFiles.Add('MaSauvegarde.GBK')
UIBrestore1.Database:=Nom_de_la_base;
UIBrestore1.PassWord:='monMotdePasse';
UIBrestore1.UserName:='SYSDBA';
UIBrestore1.Verbose:=True;
Try
UIBrestore1.Run;
Except
Memo1.Lines.Add('Récupèration impossible, base ouverte ailleurs ? ');
Ouverture.myMessage.MessageDlg('La restauration de la base IMPOSSIBLE.'#13#10#13#10, mtWarning, [mbOK], 0);
Screen.Cursor := crdefault;
Result := False;
End;
Screen.Cursor := crdefault;
Memo1.Lines.Add('Récupèration terminée à '+TimeToStr(Now));
Result:=True;
end;
//Avec on Verbose de UIBRestore1 pointant sur
procedure TF_Maintenance.UIBRestore1Verbose(Sender: TObject; Message: string);
begin
Memo1.Lines.Add(Message); // voir ce qui se passe
end;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager