FireDac et Blob avec MariaDB
Bonjour,
j'ai voulu ré-utiliser un ancien code XE5 avec XE7 : incompatible. A l'époque il était développé avec FireDac que j'ai voulu conserver. En me promenant sur le web, j'ai adapté le code. Il s'agit d'enregistrer et d'afficher un Texte enrichi dans une TMSFMXRichEditor de TMS.
Pour insérer, updater :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| var
MemStream : TMemoryStream;
begin
[...]
MemStream := TMemoryStream.Create;
with Params do begin
TMSFMXRichEditor1.SaveToStream(MemStream);
// MemStream.Seek(0,0); Inutile semble-t-il ?
ParamByName('pacrBLOB').SetStream(MemStream, ftBlob, False);
end;
ExecSQL;
[...]
MemStream.Free;
[...]
end; |
Pour lire :
Code:
1 2 3 4 5 6 7 8 9 10 11
| var
BlobStream : TStream;
begin
[...]
BlobStream := TStream.Create;
[...]
BlobStream := CreateBlobStream(FieldByName('crBLOB'), TBlobStreamMode.bmRead);
TMSFMXRichEditor1.LoadFromStream(BlobStream);
BlobStream.Free;
[...]
end; |
Le problème est pour l'écriture.
Je me demandais s'il n'y avait pas d'affection plus directe... et si la méthode était valable. J'ai pris la première qui fonctionne... déjà satisfait d'en trouver une parmi toutes celles testées. Ensuite, les streams sont très "susceptibles". Dans le premier code, pour l'instant, seul le TMemoryStream semble fonctionner. Un simple TStream coince. (Erreur d'écriture dans le flux)
D'où vient le problème ?
La base est une MariaDB 5.5. La bibliothèque cliente est une MariaDB, mais je rencontre le même problème avec une librairie MySQL. FMX Win 32
Merci d'avance.