Ver Mensaje Individual
  #1  
Antiguo 12-02-2022
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Grabar un TImage en FB 2.5

Buenos días. He estado mirando aquí y en otros foros cómo grabar el contenido de un TImage en una BB.DD. Firebird 2.5. La tabla está definida así:
Código SQL [-]
CREATE TABLE IMAGEN (
  TIPO SMALLINT NOT NULL,
  REGISTRO INTEGER NOT NULL,
  POSICION VARCHAR(1) NOT NULL,
  CARATULA BLOB SEGMENT SIZE 240);
El TImage lo cargo a partir de un fichero que selecciono con un TOpenPictureDialog y para grabar el contenido del TImage en la tabla uso esto:
Código:
TJPEGImage *ImgJpg = new TJPEGImage;
TMemoryStream *msImagen = new TMemoryStream;

msImagen->Clear();
ImgJpg->Assign(Caratula->Picture->Bitmap);
ImgJpg->SaveToStream(msImagen);
msImagen->Seek(0, soFromBeginning);

Query->Close();
Query->SQL->Text = "INSERT INTO Imagen (Tipo, Registro, Posicion, Caratula) VALUES (:Tipo, :Registro, 'P', :Caratula)";
Query->ParamByName("Caratula")->LoadFromStream(msImagen, ftBlob);
Query->ParamByName("Tipo")->AsInteger     = TabControl1->TabIndex + 1;
Query->ParamByName("Registro")->AsInteger = nRegistro;
Query->ExecSQL();
Query->Transaction->Commit();
Cunado selecciono el fichero se muestra en el formulario pero he comprobado que luego no graba nada en la tabla. ¿Algún consejo? Porque me he vuelto loco buscando ejemplos, pero ninguno me ha funcionado.
Responder Con Cita