Voir le flux RSS

Blog de Serge Girard (aka SergioMaster)

Migrer des données entre divers SGBD : FDBatchMove de Firedac

Noter ce billet
par , 17/10/2018 à 11h04 (374 Affichages)
Comme une écharde que l'on n’arrive pas à enlever je me posai une question à propos de migration de données entre SGBD*:
"Comment faire avec les blobs binaires ou texte ?"
Le webinaire de Patrick Prémartin sur Firedac a, en quelque sorte, servi de pince à épiler pour retirer cette écharde. Une question de migration y avait été posé en fin de session*: "Comment migrer de Paradox (BDE) à un autre SGBD (Firedac) ?" En était plus ou moins la teneur. Patrick avait alors montré avec beaucoup de brio mais rapidement comment cela pouvait se faire.

À la suite du webinaire, l'écharde a commencé à me démanger furieusement. Je me suis donc mis en tête de faire l'essai et vérifier ce que Firedac pouvait m'apporter.

Comme base de travail*: le fameux fichier biolife qui contient les deux types de blob (les colonnes Notes et Graphic) j'utiliserai le fichier C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Data\biolife.cds car je n'ai pas installé BDE sur mon poste.
Comme cible une base SQlite*: celle proposée dans le répertoire exemple C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\data\FDDemo.sdb

La table "biolife" n'existe pas dans cette base de données. J'ai donc créé ma table cible via SQL
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
CREATE TABLE Biolife (
    SpeciesNo    DOUBLE,
    Category     STRING,
    CommonName   STRING,
    Species_Name STRING,
    Lengthcm     DOUBLE,
    Length_In    DOUBLE,
    Comment      TEXT,
    Graphic      BLOB
);

Un rapide design va me permettre de faire mes tests de transfert
Nom : designtime.PNG
Affichages : 29
Taille : 17,7 Ko
le code
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
procedure TForm21.Button1Click(Sender: TObject);
begin
ClientDataSet1.Active:=True;
FDConnection1.Connected:=True;
fdTable1.Active:=True;
fdbatchmove1.Execute;
ClientDataSet1.Active:=False;
end;

en résultat
Nom : runtime.PNG
Affichages : 27
Taille : 38,4 Ko

Conclusion : l'écharde est enlevée, FDBatchmove permet de copier des blobs binaire ou texte et ce sans beaucoup de code.

Envoyer le billet « Migrer des données entre divers SGBD : FDBatchMove de Firedac » dans le blog Viadeo Envoyer le billet « Migrer des données entre divers SGBD : FDBatchMove de Firedac » dans le blog Twitter Envoyer le billet « Migrer des données entre divers SGBD : FDBatchMove de Firedac » dans le blog Google Envoyer le billet « Migrer des données entre divers SGBD : FDBatchMove de Firedac » dans le blog Facebook Envoyer le billet « Migrer des données entre divers SGBD : FDBatchMove de Firedac » dans le blog Digg Envoyer le billet « Migrer des données entre divers SGBD : FDBatchMove de Firedac » dans le blog Delicious Envoyer le billet « Migrer des données entre divers SGBD : FDBatchMove de Firedac » dans le blog MySpace Envoyer le billet « Migrer des données entre divers SGBD : FDBatchMove de Firedac » dans le blog Yahoo

Commentaires