Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Grabar Jpg en Base.... (https://www.clubdelphi.com/foros/showthread.php?t=300)

hcam 10-05-2003 16:13:11

Grabar Jpg en Base....
 
Hola listeros....,estoy intentando guardar imagenes *.jpg en una base de datos y no lo consigo..., les comentare como he intentado...., Tengo instalado el DBJpgImage que creo que sirve para ese proposito ej: en el datasource : DataSource1, en DataField: Foto(Paradox, tipo Graphic) despues un Button(insertar imagen)que tiene el siguiente codigo...
if OpenPictureDialog1.Execute then
begin
DBJpgImage1.Picture.LoadFromFile( OpenPictureDialog1.FileName );
end;
Tengo tambien el OpenPictureDialog, un DBNavigator, el cual esta "Atado" al DataSource1, cada vez que la tabla esta modo edicion o insercion se puede ejecutar el comando del Button..y despues se tendria que grabar la imagen al darle post en el dbnavigator creo.....

SnaKe 12-05-2003 10:34:31

Hola,

Supongo que en tu base de datos tienes un campo de tipo Blob (o Graphic si fuese paradox) para almacenar la imagen JPG. Bien, pues el código que uso yo es el siguiente:

if (OD.Execute) then begin
vHacerPost := False;
if (Tabla.State = dsBrowse) then begin
vHacerPost := True;
Tabla.Edit;
end;
TablaFOTO.LoadFromFile (OD.Filename);
if (vHacerPost) then
Tabla.Post;
end;

Tabla es un control TTable o TIBTable o TADOTable o el sistema que estés usando. TablaFOTO es el campo persistente de tipo Blob en el que quieres almacenar la imagen JPG, vHacerPost es una variable que dice si la tabla al principio estaba en modo Browse y OD es un OpenDialog o un OpenPictureDialog.

Este código lo suyo es enlazarlo al botón "Añadir foto" de tu formulario.

En resumen, en lugar de cargar la imagen sobre el control DBJPEGImage se carga sobre el campo directamente, si está debidamente enlazado al campo de la tabla adecuada se debería ver automáticamente.

Un saludo.

judoboy 16-05-2003 13:23:17

Un apunte, en bases de datos Acces no te deja almacenar imagenes en .jpg

delphi.com.ar 16-05-2003 17:30:55

Este código, tiene que funcionar con cualquier base de datos que soporte campos long.
Se supone que la variable JpegImg es del tipo TJPEGImage y tiene cargado una imagen, y también damos por supuesto que el qryFirmas esta abierto y en modo de edición.

Código:

var
  AStream : TStream;
begin
  AStream := TMemoryStream.Create;
  Try
    JpegImg.SaveToStream( AStream );
    TBlobField( qryFirmas.FieldByName('FIRMA') ).LoadFromStream( AStream );
  finally
    AStream.Free;
  end;
end;


victor Julio 23-05-2010 22:18:42

Hola snake
Aplicando tu metodo me sale el siguiente error:
[Error] Unit4.pas(34): Undeclared identifier: 'vHacerPost'
[Error] Unit4.pas(35): Undeclared identifier: 'Tabla'
Trabajo con delphi 7, access 2007 y la tabla se llama personal, TTable.
gracias por anticipado


La franja horaria es GMT +2. Ahora son las 03:56:03.

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