Backup restore firebird ou interbase

Soyez le premier à donner votre avis sur cette source.

Vue 10 518 fois - Téléchargée 1 830 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
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
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.
Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
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.
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
@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 !
Messages postés
8
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
9 février 2009

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.
Messages postés
6
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
7 septembre 2009

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.