Hi.
I have a very simple test firebird 2.5 database, with a BLOB binaty field (type 0, size 80).
In a test form place a DBImage component, and add a single code to load a image (BMP or JPG) from file. The code work without error, but when run the application again (with blob field with image content, at open table display error 'EinvalidGraphic' with message "Unknown picture format".
I using this code to load picture into blob field using dbimage component:
procedure TForm1.LoadImageButton1Click(Sender: TObject);
begin
ExampleTable.Edit;
DBImage1.WriteHeader:= False;
DBImage1.Picture.LoadFromFile( FileNameEdit1.FileName );
// And call to POST event to save the changes in registry
end;
This is the code for the sample Firebird 2.5 database (one field
):
CREATE TABLE EXAMPLE (
MY_IMAGE BLOB SUB_TYPE 0 SEGMENT SIZE 80
);
I test with BMP and JPG images, and fail in both cases when run the app for display image in dbimage component.
Any idea ?
In Spanish (sorry by my poor english):
Hola.
Tengo un problema con una base dedatos Firebird 2.5 que contiene un campo de tipo BLOB binario (tipo 0, longitud 80).
En un formulario de pruebas, coloco (ademas de los componentes para acceso a la base de datos) un componente DBImage, y el código para agregar una imagen en formato BMP o JPG desde un archivo. Funciona bien al leer el archivo y guardarlo en el campo, pero al ejecutar nuevamente la aplicación, cuando tienen que mostrar la imagen en el componente DBImage, se produce el error: 'EinvalidGraphic' con el mensaje "Unknown picture format".
Este es el código que uso para cargar la imagen desde un fichero:
procedure TForm1.LoadImageButton1Click(Sender: TObject);
begin
ExampleTable.Edit;
DBImage1.WriteHeader:= False;
DBImage1.Picture.LoadFromFile( FileNameEdit1.FileName );
// Y luego uso POST para guardar los cambios
end;
Este es el código para la tabla Firebird 2.5 (un solo campo !!!
):
CREATE TABLE EXAMPLE (
MY_IMAGE BLOB SUB_TYPE 0 SEGMENT SIZE 80
);
Hice la prueba con archivos BMP y JPG, en ambos casos se guardan (y en ese momento se muestran en el componente DBImage) , pero al intentar ejecutar de nuevo la aplicación, recibo un mensaje de error desde DbImage.
Ramon