PDA

Ver la Versión Completa : Grabar Jpg en Base....


hcam
10-05-2003, 16:13:11
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.

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