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 (752 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 : 47
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 : 43
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

  1. Avatar de Koka_
    • |
    • permalink
    Bonjour Sergio,

    J'ai un problème avec un éditeur qui garde ses tables en paradox. te faut il avoir accès au serveur paradox ? login ou autre ?
    Cet éditeur remonte certaines tables en SQL que j'exploite via un outil de BI dans MSS. Mais je n'ai pas accès aux tables paradox à proprement parlé, elles sont cryptés en quelque sorte sur MSS.
    Après maintes demandes, et sans retour j'aimerai pouvoir contourner leur logiciel via un script ou autre

    J'aimerai d'abord m'exercer : est ce que je peux réaliser les mêmes manipulation que toi avec les tables sources ? (tu nous montres le chemin) j'aimerai les DB et la réalisation de ton DBx
    C'est surement bcp demandé mais ça me permettrait de comprendre comment tu as fait

    Cdt
  2. Avatar de SergioMaster
    • |
    • permalink
    Bonjour,
    Citation Envoyé par Koka_
    J'aimerai d'abord m'exercer : est ce que je peux réaliser les mêmes manipulation que toi avec les tables sources ? (tu nous montres le chemin) j'aimerai les DB et la réalisation de ton DBx
    C'est surement bcp demandé mais ça me permettrait de comprendre comment tu as fait
    Je ne suis pas sûr de pouvoir fournir le source, suite au crash de mon disque c'est une partie que je n'ai pas encore récupérer
    De toute façon tout (ou presque) est écrit dans le billet, la partie "cosmétique" (affichage des données) n'est là que pour illustrer.