hi,
<br>ich lege mir mal wieder die Karten.
<br>Ich benutze den CBuilder 5.0 Professionell und die Datenzugriffs-Komponenten, die ADO-Komponenten stehen mir nicht zur Verfügung.
<br>Bilder als Blob in eine Interbase-Datenbank zu schreiben und auszulesen ist gar kein Problem.
<br>Jetzt versuche ich dies mit einer Access-Datenbank und mein Wissen recht nicht aus.
<br>Zum Schreiben benutze ich folgende Methode
<pre>
if (OpenPictureDialog2->Execute())
{
TBlobStream *aBS = new TBlobStream( Query2PER_BILD , bmWrite);
try
{
aBS->Seek( 0, soFromBeginning );
TFileStream *aFS = new TFileStream( OpenPictureDialog2->FileName,
fmOpenRead || fmShareDenyWrite );
try
{
aBS->CopyFrom( aBS, aBS->Size );
}
__finally
{
delete aFS;
}
}
__finally
{
delete aBS;
}
}
</pre>
<br>Danach wird kein Bild mehr in der DBImage-Komponente angezeigt.
<br>Beim Versuch mit dem folgenden Code ist der obere Teil des Bildes im DBImage immer abgeschnitten.
<pre>
TBlobField *aBF = dynamic_cast <TBlobField*>(Query2->FieldByName( "PER_BILD" ));
if ( aBF == NULL ) return;
aBF->LoadFromFile( OpenPictureDialog2->FileName );
</pre>
mfg & thx
Torsten
<br>ich lege mir mal wieder die Karten.
<br>Ich benutze den CBuilder 5.0 Professionell und die Datenzugriffs-Komponenten, die ADO-Komponenten stehen mir nicht zur Verfügung.
<br>Bilder als Blob in eine Interbase-Datenbank zu schreiben und auszulesen ist gar kein Problem.
<br>Jetzt versuche ich dies mit einer Access-Datenbank und mein Wissen recht nicht aus.
<br>Zum Schreiben benutze ich folgende Methode
<pre>
if (OpenPictureDialog2->Execute())
{
TBlobStream *aBS = new TBlobStream( Query2PER_BILD , bmWrite);
try
{
aBS->Seek( 0, soFromBeginning );
TFileStream *aFS = new TFileStream( OpenPictureDialog2->FileName,
fmOpenRead || fmShareDenyWrite );
try
{
aBS->CopyFrom( aBS, aBS->Size );
}
__finally
{
delete aFS;
}
}
__finally
{
delete aBS;
}
}
</pre>
<br>Danach wird kein Bild mehr in der DBImage-Komponente angezeigt.
<br>Beim Versuch mit dem folgenden Code ist der obere Teil des Bildes im DBImage immer abgeschnitten.
<pre>
TBlobField *aBF = dynamic_cast <TBlobField*>(Query2->FieldByName( "PER_BILD" ));
if ( aBF == NULL ) return;
aBF->LoadFromFile( OpenPictureDialog2->FileName );
</pre>
mfg & thx
Torsten
Comment