Bonjour suite a ce post
http://www.developpez.net/forums/d76...irebird-2-1-a/
Je suis sur la partie finale ou je me mets en cache la partie de champs blob
J'essaie d'extraire la valeur du champ "IMAGE" et l'ajouter au IBClientDataSet
J'ai regarde l'aide en ligne de TBlobFIeld, et TBlobStream
J'ai fait ceci
Première Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
case ftBlob:{
TBlobField *pBl=new TBlobField(pDs);
pBl->FieldName=pDs->Fields->Fields[i]->DisplayLabel;
//pBl->DataSet=pDs;
TBlobStream*pBlobStream=new TBlobStream(pBl,bmRead);
TStream*pStreamLu=pDs->CreateBlobStream(pDs->Fields->Fields[i],bmReadWrite);
pStreamLu->CopyFrom(pBlobStream,pBlobStream->Size);
break;
}} |
Dans ce cas j'ai une viloation d'acces au niveau du constructeur de TBlobStream
Si je decommante
j'ai cette exception de levée
Le projet TestConectionFirebird4.exe a provoqué une classe d'exception EDatabaseError avec le message 'IBQuery1: Impossible d'effectuer cette opération sur un ensemble de données ouvert'.
le problème est que je si je ferme pDs je perd mes données
pDs est aliment comme ceci
TDataSet *pDs=GetQueryResult(pQuery)
Questions :
comment affecter pEnreg[i] ?
J'ai essaye aussi avec
TIBBlobStream*pIBlobStream=new TIBBlobStream(pBl,bmRead);
j'ai une erreur de compilation
[C++ Erreur] TIbSGBD.cpp(193): E2285 Impossible de trouver une correspondance pour 'TIBBlobStream::TIBBlobStream(TBlobField *,TBlobStreamMode)'
Seconde solution que j'ai essayé
1 2
| TStream *pStreamLu=pDs->CreateBlobStream(pDs->Fields->Fields[i],bmReadWrite);
pCache->SaveToStream(pStreamLu); |
Le projet TestConectionFirebird4.exe a provoqué une classe d'exception EIBClientError avec le message 'Pas en mode édition'.
Le première solution me plaisais car avec cette méthode TBlobField::AsVariant je contais convertir cecie en variant
est l'affecter a pEnreg[i] qui est un TVarRec
mais je ne vois pas comment dans mon code
question est possible de convetir un Variant en Blob
pour la lecture ?
Je vous remercie de m'avoir lu
et si vous pouvez m'aider.....![:aie:](https://www.developpez.net/forums/images/smilies/aie.gif)
Ps si c'est pas assez clair je peux fournir plus de code
Partager