Backup restore firebird ou interbase

0/5 (7 avis)

Vue 10 879 fois - Téléchargée 1 875 fois

Description

Bonjour à tous,

J'avais besoin d'un petit utilitaire afin d'enchaîner les opération de Backup et Restore d'une base FIREBIRD.

Et comme je n'ai rien trouvé..J'ai donc conçu ce petit programme en me servant de deux composants :

Le TIBbackupServvice et le TIBRestoreService en prenant les options les plus courantes.

Pour le Backup : Options := [NonTransportable, IgnoreLimbo];
Et
Le Restore : Options := [Replace, UseAllSpace];

Et je me suis dit autant le réaliser aussi pour une base INTERBASE.

Il y des commentaires un peu partout et bien entendu vous pouvez utiliser d'autres options si vous le souhaitez (voir la documentation delphi)

Voilà une petite forme orthogonale (pas très bien fermée..)
avec un petit bouton dans la barre de titre le tout avec un peu de gradients grâce aux travaux de cirec et f0xi.

Les fichiers résultant (base nettoyée et compressée + fichiers LOG) sont stockés dans

C:\temp, dossier crée automatiquement s'il n'existe pas.

@bientôt

Conclusion :


Le principe :
Dès que les paramètres sont renseignés
(choix de la base, protocole, serveur, user_name et password)
le bouton "Lancer Backup Restore s'allume".
Sur clic, vous allez chercher votre base là où elle est se trouve et dès que l'opération est terminée, le bouton "Récupération des logs" s'allume à son tour.

Tous les fichiers résultant sont stockés dans c:\Temp

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
28 août 2009 à 13:20
ah oui affectivement...
je ne sais vraiment pas ce qui s'est passé..
rien qu'à voir le premier fichier country2.db,j'ai tout de suite vu qu'il n'était pas de moi..

En tout cas meci d'avoir signalé cet incident.

je vais reposter le source.
beckerich Messages postés 302 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 17 septembre 2013 1
28 août 2009 à 11:01
Bonjour Cantador,

je viens de télécharger le zip, et les fichiers ne sont apparemment pas ceux du projet !!!

Salutations, Luc.

UNIT Unit1;

INTERFACE

USES
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, DB, DBTables, Grids, DBGrids;

TYPE
  TForm1 = CLASS(TForm)
    Query1: TQuery;
    DataSource1: TDataSource;
    Query2: TQuery;
    DBGrid2: TDBGrid;
    DataSource2: TDataSource;
    Query2Name: TStringField;
    Query2Capital: TStringField;
    Query2Continent: TStringField;
    Query2Area: TFloatField;
    Query2Population: TFloatField;
    DBGrid1: TDBGrid;
    Query1Name: TStringField;
    Query1Capital: TStringField;
    Query1Continent: TStringField;
    Query1Area: TFloatField;
    Query1Population: TFloatField;
    PROCEDURE DBGrid2DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; VAR Accept: Boolean);
    PROCEDURE FormCreate(Sender: TObject);
    PROCEDURE DBGrid2DragDrop(Sender, Source: TObject; X, Y: Integer);
    PROCEDURE DBGrid1StartDrag(Sender: TObject;
      VAR DragObject: TDragObject);
    PROCEDURE DBGrid1CellClick(Column: TColumn);
//    procedure DBGrid2DragDrop(Sender, Source: TObject; X, Y: Integer);
  PRIVATE
    { Déclarations privées }
  PUBLIC
    { Déclarations publiques }
  END;

VAR
  Form1: TForm1;
  DragRecords: ARRAY OF variant;
  ASource, DestSource: TDataSource;
IMPLEMENTATION

{$R *.dfm}

PROCEDURE TForm1.DBGrid2DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; VAR Accept: Boolean);
BEGIN
  Accept := (Source IS TDBGrid) AND (TDBgrid(sender).DataSource <> NIL);
END;

PROCEDURE TForm1.FormCreate(Sender: TObject);
BEGIN
  Query1.Open;
  Query2.Open;
END;

PROCEDURE TForm1.DBGrid2DragDrop(Sender, Source: TObject; X, Y: Integer);
VAR
  I: integer;
BEGIN
  DestSource := TDBGrid(sender).DataSource;
  IF ASource = DestSource THEN exit;
  TRY
    TDBGrid(sender).ReadOnly := false;
    TDBGrid(sender).DataSource.DataSet.Insert;
    FOR I := 0 TO TDBGrid(sender).FieldCount - 1 DO
      TDBGrid(sender).Fields[I].Value := DragRecords[I];
    TDBGrid(sender).DataSource.DataSet.Post;
  FINALLY
    TDBGrid(sender).ReadOnly := true;
    TDBGrid(sender).DragMode := dmManual;
  END;
END;

PROCEDURE TForm1.DBGrid1StartDrag(Sender: TObject;
  VAR DragObject: TDragObject);
VAR
  I: Integer;
BEGIN
  ASource := TDBGrid(sender).DataSource;
  SetLength(DragRecords, TDBGrid(sender).FieldCount);
  FOR I := 0 TO TDBGrid(sender).FieldCount - 1 DO
    DragRecords[I] := TDBGrid(sender).Fields[I].Value;
END;

PROCEDURE TForm1.DBGrid1CellClick(Column: TColumn);
BEGIN
  DBGrid1.BeginDrag(true);
END;

END.
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
9 févr. 2009 à 11:00
@Lebidouilleur:
Merci pour le compliment..mais le code est simple..
Quant à la fenêtre, j'aime bien surprendre et
encore si je m'écoutais j'aurais fait parchemin !
cs_ZZZEvelyne Messages postés 8 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 9 février 2009
9 févr. 2009 à 10:47
Merci Cantador. J'ai toujours le même message bloquant dans Delphi 7. Je suis sous Vista...
Pour tenter de contourner le problème j'ai ouvert le projet sous Delphi 2009. Et là impec !!! Ca fonctionne....
Je vais donc pouvoir tester.
cs_lebidouilleur Messages postés 6 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 7 septembre 2009
9 févr. 2009 à 10:24
Ce code est tellement bien fait qu'il m'a permis de réparer une base endommagée, ce que je n'arrivais pas à faire avec des outils comme IBconsole ou IBEasy+.
juste une réserve sur l'esthétique de la fenêtre hexagonale...
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.