TBlobFiled,TBlobStream ,extraire les valeur d'un champ image pour le mettre en cache
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
Code:
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
Citation:
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
Code:
TDataSet *pDs=GetQueryResult(pQuery)
Questions :
comment affecter pEnreg[i] ?
J'ai essaye aussi avec
Code:
TIBBlobStream*pIBlobStream=new TIBBlobStream(pBl,bmRead);
j'ai une erreur de compilation
Citation:
[C++ Erreur] TIbSGBD.cpp(193): E2285 Impossible de trouver une correspondance pour 'TIBBlobStream::TIBBlobStream(TBlobField *,TBlobStreamMode)'
Seconde solution que j'ai essayé
Code:
1 2
| TStream *pStreamLu=pDs->CreateBlobStream(pDs->Fields->Fields[i],bmReadWrite);
pCache->SaveToStream(pStreamLu); |
Citation:
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:
Ps si c'est pas assez clair je peux fournir plus de code