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 : 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
 
 
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
Code : S�lectionner tout - Visualiser dans une fen�tre � part
 TDataSet *pDs=GetQueryResult(pQuery)

Questions :
comment affecter pEnreg[i] ?

J'ai essaye aussi avec
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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�

Code : S�lectionner tout - Visualiser dans une fen�tre � part
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.....


Ps si c'est pas assez clair je peux fournir plus de code