Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ¿Como guardar una Imagen en una base de datos? (https://www.clubdelphi.com/foros/showthread.php?t=85283)

jscubillos5 24-02-2014 22:40:01

¿Como guardar una Imagen en una base de datos?
 
Buen día comunidad, quisiera saber si alguno de ustedes sabe como puedo guardar una imagen en una base de datos Interbase, con Delphi XE5.

De ante mano muchas gracias por leer este hilo, y por tomarse el tiempo de responderlo.

Casimiro Notevi 24-02-2014 23:18:33

Haz una búsqueda por los foros, se ha tratado muchas veces ese tema.

jafera 25-02-2014 12:26:00

Busca información acerca de LoadFromFile

Josep

bulc 06-03-2014 23:01:37

Cita:

Empezado por jscubillos5 (Mensaje 472979)
Buen día comunidad, quisiera saber si alguno de ustedes sabe como puedo guardar una imagen en una base de datos Interbase, con Delphi XE5.

De ante mano muchas gracias por leer este hilo, y por tomarse el tiempo de responderlo.

/

Puedes recoger la imagen de un fichero (con esa única imagen) o sacarla del Paint: recuadras el trozo que sea y lo guardas en el PortaMemoria pulsando
Ctrl/C. Luego haces clic en el campo Image y haces Ctrl/V. Te aparecerá la imagen. Ahora bien, antes de guardarla debes establecer por código el tipo de imagen para que sea aceptada. Normalmente Firebird no se queja. Basta que pases de un registro a otro para que se guarde físicamente.

jscubillos5 07-03-2014 13:34:38

Hola comunidad
 
Gracias por su ayuda, finalmente lo único que tuve que haces fue lo siguiente, crear un procedimiento almacenado, el cual recibe todos los datos, de una única tabla llamada IMAGEN, y por su puesto recibe la imagen que quería guardar en la base, luego en el código PASCAL solo tuve que colocar 2 objetos sobre un formulario, un TIMAGE, y un TBUTTON, en el evento ONCLIK del BUTTON, coloque los siguiente:

Código Delphi [-]
procedure TFormPrincipal.ButtonGuardarClick(Sender: TObject);
begin
  // Si se ejecuta el OpenDialog 
  if OpenDialogFormPrincipal.Execute then
  begin
    // Cargar imagen al objeto visual en el formulario
    ImageFormPrincipal.Bitmap.LoadFromFile(OpenDialogFormPrincipal.FileName);
    try
      try
        // Preparar la base para recibir el procedimiento almacenado
        IBStoredProcInsertarImagen.Prepare;
        // Cargar los parametros al procedimiento
        IBStoredProcInsertarImagen.ParamByName('FORMATOIMAGEN').Value:= AnsiUpperCase(ExtractFileExt(OpenDialogFormPrincipal.FileName));
        IBStoredProcInsertarImagen.ParamByName('NOMBRE').Value:= ExtractFileName(OpenDialogFormPrincipal.FileName);
        IBStoredProcInsertarImagen.ParamByName('UBICACION').Value:= ExtractFilePath(OpenDialogFormPrincipal.FileName);
        // Se carga la imagen como tipo ftBlob, con el procedimiento LoadFromFile  
        IBStoredProcInsertarImagen.ParamByName('IMAGEN').LoadFromFile(OpenDialogFormPrincipal.FileName, ftBlob);
        // Se ejecuta el procedimiento almacenado
        IBStoredProcInsertarImagen.ExecProc;
        ShowMessage('La imagen fue exitosamente cargada.');
        if not IBTransactionPruebas.InTransaction then
        begin
          IBTransactionPruebas.StartTransaction;
        end;
        IBTransactionPruebas.Commit;
      finally
        IBStoredProcInsertarImagen.Close;
      end;
    except
      on Error: Exception do
      begin
        ShowMessage('Atención ha ocurrido un error: ' + Error.Message);
      end;
    end;
  end
  else
  begin
    //
  end;
end;


La franja horaria es GMT +2. Ahora son las 19:50:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi