PDA

Ver la Versión Completa : cargar imagen para base de datos


Max_E.
22-03-2008, 17:17:01
hola a todos: :):)
hace ya meses pude crear con mucha mucha ayuda de este foro una aplicación de base de datos sobre las partes que llevan ciertos componentes, indicando nombre, serie, cantidad y además un comentario del mismo (el cual me sirve de mucho por la gran cantidad de componentes que hay) pero lo que no puedo hacer es que además de un comentario me de también una imagen de la parte en mención.

Me explico....:(:(


utilizo 2 archivos componente. DB, partes.DB (table1, table2), uno donde están todos los componentes y otro donde están las partes de cada componte, el programa filtra según la elección del componente y los muestra en un DBGRID, y cuando se hace click en una de las celdas de las partes muestra un comentario en un DBMEMO. En el archivo componentes.DB en el campo comentario puse tipo memo y al DBMEMO lo enlace con el table1 con un DataSource1.

Y por fin la pregunta....:confused:

como le ago si quiero mostrar una imagen que se a cargado desde la creación o cargarla en ejecución pero que se guarde la ruta para la próxima consulta ???????......

Max_E.
25-03-2008, 15:58:42
Hola a todos denuevo.

bueno encontre un ejemplo de como cargar una imagen en base de datos en preguntas parecidas en el foro, y si resultan pero lo que yo quiero es cargar imagenes .jpg y en el ejemplo solo se puede cargar imagenes .bmp este es el codigo


procedure TForm1.Button2Click(Sender: TObject);
begin
If OpenPictureDialog1.Execute then
begin
table1.Edit;
DBImage1.Picture.LoadFromFile (openpicturedialog1.FileName);
end;


talves falta algo en USES, estos son los que utilizo


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, DBCtrls, ExtCtrls, Menus,
Mask, ExtDlgs, jpeg;


encontre otro ejemplo pero no funciona y me muetsra el error 'bitmap image is not valid'

procedure TForm1.Button2Click(Sender: TObject);
var
Jpg: TJpegImage;
Stream: TMemoryStream;
begin
Jpg := nil;
Stream := nil;
try

// Create a JPEG image and load it from a file

Jpg := TJpegImage.Create;

If OpenPictureDialog1.Execute then
begin

DBImage1.Picture.LoadFromFile (openpicturedialog1.FileName);


End;
Jpg.LoadFromFile(openpicturedialog1.FileName);

// Create a stream and save the image to the stream

Stream := TMemoryStream.Create;
Jpg.SaveToStream(Stream);
Stream.Position := 0;
Table1.Append;

// Load the Blob field from the stream

TBlobField(Table1.FieldByName('Image')).LoadFromStream(Stream); (aqui se detiene)

// Table1.Post;
except
jpg.Free;
Stream.Free;
raise;
end;
jpg.Free;
Stream.Free;

end;

tal ves el problema esta en las propiedades del campo image???, guardarlo en bmp me ocuparia mucho espacio es por eso que preferiria que se guarde con externcion .jpg

en verdad ya e buscado en preguntas anteriores pero nada aun, espero que alguien pueda yurdarme, gracias de ante mano.