Migrer des données entre divers SGBD : FDBatchMove de Firedac
par
, 17/10/2018 à 10h04 (1952 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 ?"
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
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
Conclusion : l'écharde est enlevée, FDBatchmove permet de copier des blobs binaire ou texte et ce sans beaucoup de code.