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

Bases de données Delphi Discussion :

Dump Table vers fichier SQL: champs BLOB ?


Sujet :

Bases de données Delphi

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Par défaut Dump Table vers fichier SQL: champs BLOB ?
    Bonjour,

    Je souhaite "dumper" le contenu de mes tables vers un ou plusieurs fichiers au format SQL. Comment faire pour les champs BLOB ?

    Pour les autres types de champs, pour l'instant je fais quelque chose comme ça (code simplifié ne prenant pas en compte les éventuelles valeurs NULL):

    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
     
    var
      slFichierSQL: TStringList;
    begin
      slFichierSQL := TStringList.Create;
     
      with tbl1 do begin
        TableName := 'Projets';
        Open;
        First;
        while not Eof do begin
          slFichierSQL.Add('INSERT INTO Projets VALUES (');
          slFichierSQL.Add(FieldByName('ID').AsString + ',');
          slFichierSQL.Add(FieldByName('ChampNum1').AsString + ',');
          slFichierSQL.Add(QuotedStr(FieldByName('ChampTxt1').AsString));
          slFichierSQL.Add(');');
          Next;
        end;
        Close;
      end;
     
      slFichierSQL.SaveToFile('dump.sql');
      slFichierSQL.Free;
    end;
    Mais je ne vois pas comment faire pour les champs BLOB ? Si je dumpe directement la valeur "AsString", mon fichier texte contient des caractères illisibles: il faut probablement que j'encode la sortie, mais quel encodage utiliser pour être sûr que je pourrai de nouveau importer ces données dans une autre BDD plus tard ?

  2. #2
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Indépendamment de ta question je pense que tu vas avoir un pb de taille de champ car les champs 'string', quelque soit la BDD, n'ont pas une longueur infinie.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Par défaut
    Qu'est-ce que tu veux dire par là ?
    Mon code permet seulement de générer un fichier SQL de ce genre:

    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
    INSERT INTO Projets VALUES ('
    1,
    17,
    'TexteA'
    ');
     
    INSERT INTO Projets VALUES ('
    2,
    49,
    'TexteB'
    ');
     
    INSERT INTO Projets VALUES ('
    3,
    21,
    'TexteC'
    ');
    Je ne comprends pas la remarque sur la longueur des chaînes ?

  4. #4
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Je voulais simplement dire que un champ 'string' a une taille max. (ex 255 dans Access) alors que le Blob a une taille 'infinie'.
    Donc tu auras des erreurs si tu mets un Blob dans un champ string.

    Mais c'est peut être pas ce que tu voulais faire...

    Sinon : http://delphi.about.com/od/database/a/record2blob.htm

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Par défaut
    Mes fichiers (blobs) sont déjà stockés dans mes tables comme dans le lien que tu donnes. Ce que je veux c'est exporter le contenu de ces tables vers des fichiers SQL (fichiers texte contenant des commandes INSERT) pour les réinjecter dans une autre base de données.
    Pour info la base de destination est au format SQLite, j'ai déjà essayé de transférer directement de tables à tables (entre TDataSource) mais j'ai des quelques problèmes, alors je fais un essai avec un export/import SQL.
    Mais je ne sais pas comment exporter les blobs en commandes SQL, sous quel format/encodage je dois les exporter !?

Discussions similaires

  1. Exporter une <table> vers fichier CSV
    Par sebhm dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 17/04/2014, 15h33
  2. Talend vers fichier .sql ?
    Par NTeeN dans le forum Développement de jobs
    Réponses: 14
    Dernier message: 26/05/2009, 12h03
  3. exporter table vers fichier txt
    Par joe370 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/05/2009, 12h08
  4. fichier txt vers fichier .sql
    Par radzar dans le forum Langage SQL
    Réponses: 9
    Dernier message: 12/03/2009, 13h40
  5. Passage des données data/nomClass.res vers fichiers SQL
    Par gabs77 dans le forum W4 Express
    Réponses: 7
    Dernier message: 15/07/2008, 11h32

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