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 ?