BACKUP RESTORE FIREBIRD OU INTERBASE

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 à 09:28
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 28 août 2009 à 13:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49211-backup-restore-firebird-ou-interbase

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
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 2
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 13
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...
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 févr. 2009 à 10:19
Bonjour @ZZZEvelyne,

J'ai éliminé un uses du thead correspondant à une unité non intégrée au projet..
Mais sauf erreur de ma part, je ne pense que cela va régler ton souci car je n'utilise pas de composant 'xtrafil'..
Je te précise également que le programme tourne sous XP Sp2 / Delphi 7.

cantador
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 à 09:28
Merci pour cette source qui est sans doute très utile, mais je ne parviens pas à la compiler. Erreur fatale : Paquet requis 'xtrafil' non trouvé. Je ne parviens pas trouver ce fameux paquet. Si quelqu'un peut me dire comment faire ce serait sympa et ça me permettrait de tester la source de cantador.

ZZZEvelyne
Rejoignez-nous