Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2016
Jaroncp Jaroncp is offline
Registrado
NULL
 
Registrado: oct 2016
Posts: 7
Poder: 0
Jaroncp Va por buen camino
Sí eso lo sé, son solo bits, pero no es que no lo puedo guardar en con el formato, por ejemplo JPG, o PNG..., ¿O si puedo?, por que si es así las cosas serían más sencillas.
Responder Con Cita
  #2  
Antiguo 18-10-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
El "formato" ya lo tenes, es el stream o todos los bytes. Eso ya es la imagen con el formato. Luego, todos los archivos tienen una cabecera en donde se guarda informacion sobre que tipo de archivo y que formato tiene. Pero creo que estas complicandote con cosas que ya estan resueltas

Lo unico que tenes que hacer es guardar un "valor" y luego recuperar y mostrar ese "valor". Tipicamente lo que se hace es pasar la imagen a algun descendiente de TStream (por ejemplo, TMemoryStream) y se envia un comando a la BD para que guarde ese stream.

Luego, haces un query por ese campo, lo obtienes como stream, y se lo pasas al componente de imagen

Codigo medio de memoria, pero la idea es esta:

Código Delphi [-]
procedure GuardarImagen(Imagen: TImage);
var
  StreamImagen: TStream;
begin
  qry := crear tu componente query 
  qry.Connection := le asignas la conexion
  qry.SQL.Text := 'INSERT INTO TABLA (CampoImagen) VALUES (:CampoImagen)';
  StreamImagen := TMemoryStream.Create;
  try
     Imagen.SaveToStream(StreamImagen);
    StreamImagen.Position := 0;
    qry.ParamByName('CampoImagen').AsSteam := StreamImagen;
    // puede ser en lugar de .AsSteam, .Value, o .LoadFromStream; depende de los componentes
    qry.Execute;
  finally
   StreamImagen.Free;
  end;
end

Código Delphi [-]
procedure MostrarImagen;
begin
  qry := ...
  qry.Open;
   Image1.LoadFromStream(qry.FieldByName('CampoImagen').AsStream);
end;

Tambien es posible pasar la imagen a un monton de otras representaciones; por ej BASE64 es muy usada
Responder Con Cita
  #3  
Antiguo 18-10-2016
Jaroncp Jaroncp is offline
Registrado
NULL
 
Registrado: oct 2016
Posts: 7
Poder: 0
Jaroncp Va por buen camino
Muchas gracias, voy a probar el código, cualquier duda que tenga se las hago saber.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al intentar insertar o modificar datos en tablas. ruedabeat2003 Conexión con bases de datos 3 21-01-2016 03:11:00
Como insertar , modificar datos en SQL con zeos en Delphi? francodelphi Conexión con bases de datos 1 09-11-2011 21:13:08
Insertar imagenes a una base de datos .db emula Tablas planas 4 14-02-2011 03:14:22
Insertar y mostrar imagenes jocey Varios 4 05-09-2008 15:28:18
Leer/insertar/modificar datos desde un archivo XML IVAND Varios 1 26-08-2006 23:11:29


La franja horaria es GMT +2. Ahora son las 07:45:37.


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
Copyright 1996-2007 Club Delphi