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

Delphi Discussion :

FireDAC - Aide pour composant TFDBatchMove


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 51
    Par défaut FireDAC - Aide pour composant TFDBatchMove
    Bonjour à tous,

    J'aurai besoin d'un peu d'aide.

    J'ai créé une méthode qui doit copier une table source vers une table qui n'existe pas encore dans la DB (celle-ci serait en sorte un clone).

    Je suis concrétement en train de tester les possibilités offertes par FireDAC.

    Le composant TFDBatchMove est d'après la documentation d'Embarcadero capable de créer une table lors de la copie grâce à la propriété Options.

    A noter que cette méthode fait partie d'une classe de connection. Raison pour laquelle des objets utilisés à l'intérieur de ma routine ne sont pas créés à l'intérieur de celle-ci.

    J'ai ajouté en commentaire le code de l'ancêtre de TFDBatchMove (le TBatchMove du BDE) pour lequelle j'ai pu réaliser mon souhait sans soucis donc je pense que FireDAC en et capable.

    Je me doute que je fais une erreur quelque part mais où ?


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    // Ici je passe le nom de table source qui est bien présente et le nom de la table à créer
    procedure TDBConnection.CopyTableToCloneTable(ASourceTableName, ACloneTableName: string);
    var
      FFDCloneTable : TFDTable;
    begin
     
      try
     
          FFDBatchMove.Options := [poClearDestNoUndo, poIdentityInsert, poCreateDest]; // Ici je demande que la table soit bien créée
          FFDCloneTable := TFDTable.Create(nil);
          try
     
            FFDTable.Active := False;
            FFDTable.ConnectionName := FFDConnection.ConnectionName;
            FFDTable.TableName := ASourceTableName;
            FFDTable.Active := True;
     
            FFDCloneTable.Active := False;
            FFDCloneTable.ConnectionName := FFDConnection.ConnectionName;
            FFDCloneTable.TableName := ACloneTableName;
            FFDCloneTable.Active := True;
     
     
     
            FFDBatchMoveDatasetReader.DataSet := FFDTable;
     
            FFDBatchMoveDatasetWriter.DataSet := FFDCloneTable;
     
     
            FFDBatchMove.Reader := FFDBatchMoveDatasetReader;
            FFDBatchMove.Writer := FFDBatchMoveDatasetWriter;
            FFDBatchMove.GuessFormat;
            FFDBatchMove.Execute;
     
    //******************** BDE Version ***************************
    //        FCloneTable.DatabaseName := FDatabase.DatabaseName;
    //        FCloneTable.TableName := ACloneTableName;
    //
    //        FTable.Active := False;
    //        FTable.DatabaseName := FDatabase.DatabaseName;
    //        FTable.TableName := ASourceTableName;
    //        FTable.Active := True;
    //
    //        FBatchMove.Source := FTable;
    //        FBatchMove.Destination := FCloneTable;
    //        FBatchMove.Mode := batCopy;
    //        FBatchMove.Execute;
     
     
          finally
            FreeAndNil(FFDCloneTable);
          end;
     
      except
        raise;
      end;
     
    end;
    Merci mille fois à ceux qui pourront m'aider.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 51
    Par défaut
    J'ai oublié de signaler que je reçois un message d'erreur qui me dit que la table clone n'existe pas (je m'attendais à ce que celle-ci soit créé automatiquement).

    Merci d'avance pour vos réponses

Discussions similaires

  1. Aide pour composer puis écrire & lire dans un tableau
    Par lcoulon dans le forum Débuter
    Réponses: 24
    Dernier message: 10/12/2009, 08h26
  2. Aide pour paramétrage Composant Apro TAdModem
    Par kabish dans le forum Composants VCL
    Réponses: 0
    Dernier message: 20/08/2007, 15h30
  3. Aide pour développement de composant
    Par Bruno13 dans le forum Delphi
    Réponses: 3
    Dernier message: 18/06/2007, 15h05
  4. Réponses: 2
    Dernier message: 29/11/2006, 23h52
  5. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 20h01

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