Hola.
Usando
Firebird y estando el campo 'IMAGE' definido así,
Código SQL
[-]
...
IMAGE BLOB SUB_TYPE 0 SEGMENT SIZE 1024
...
de este modo guarda correctamente el contenido del
TImage :
Código PHP:
#include <jpeg.hpp>
// cargar archivo imagen en TImage
void __fastcall TForm1::btnLoadImageClick(TObject *Sender)
{
if (OpenPictureDialog1->Execute()) {
Image1->Picture = NULL;
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
}
// guardar TImage en campo blob
void __fastcall TForm1::btnSaveImageClick(TObject *Sender)
{
Graphics::TBitmap *Bitmap = new Graphics::TBitmap;
TStream *Stream = new TMemoryStream;
try {
Bitmap->Width = Image1->Picture->Width;
Bitmap->Height = Image1->Picture->Height;
Bitmap->Canvas->Draw(0, 0, Image1->Picture->Graphic);
Bitmap->SaveToStream(Stream);
IBQuery1->SQL->Clear();
IBQuery1->SQL->Add("UPDATE TB_BLOB SET IMAGE = :IMAGE WHERE ID = :ID");
IBQuery1->ParamByName("ID")->AsInteger = CSpinEdit1->Value;
IBQuery1->ParamByName("IMAGE")->LoadFromStream(Stream, ftBlob);
IBQuery1->ExecSQL();
}
__finally {
delete Stream;
delete Bitmap;
}
}
Saludos