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)
-   -   Guarda Imagen en Campo Blob con Sql (https://www.clubdelphi.com/foros/showthread.php?t=24212)

kpss8m 11-08-2005 19:56:02

Guarda Imagen en Campo Blob con Sql
 
He buscado en el foro como guardar imagenes en campos blob de un TImage, encontre varias soluciones pero no me sirven, el motivo es el siguiente, no tengo forma de conocer la ruta de la imagen pero tengo la imagen cargada ya en un TImage y no encuentro como guardarla directamente, agradeceria cualquier informacion.

rastafarey 12-08-2005 02:28:53

resp
 
Mira no recuerdo el tipo se escribe exactamente asi no tengo delphi ala mano para probar
Código Delphi [-]
var
   b : tblobfield;
   m: TMemoryStream;
begin
   b := tblobfield.create(self);
   m := TMemoryStrean.create;
   try
     Image.SaveTostrean(M);
     B.LoaddFromStrean(M);  
   Finally 
     m.Free;
   End; 
   Query.FieldByname('Campo') := B; 
End;
No es seguro que este codigo funcione perfecto como ya lo dije antes no tengo delphi a la mano.

kpss8m 16-08-2005 16:18:04

re:Resp
 
Gracias por tu respuesta rastafarey, habia intentado hacer algo parecido pero no me funcionaba, mi problema es que estaba intentando utilizar un TStream en vez de un TMemoryStrean. Me Puse A buscar Hacerca de TMemoryStream y encontre estos enlaces interesantes, los dejo por si a alguien mas le sirven:

http://www.forumweb.com.br/forum/lofiversion/index.php/t1935.html
http://latiumsoftware.com/en/pascal/0011.php

A si Mismo modifique el codigo y quedo de la siguiente forma

Código Delphi [-]
  Procedure GuardaLogo;
  Var
    sSql : String;
    bs : TMemoryStream;
  Begin
    DM.ibqOp.Close;
    DM.ibqOp.SQL.Clear;
    DM.ibqOp.SQL.Add('INSERT INTO usuarios (id, logo) values (:id, :logo);');
    DM.ibqOp.ParamByName('id').AsInteger := 1;
  
    // Carga de una imagen en un campo BLOB y Guardarlo en un TImage
    // Referencia 
    //            http://www.forumweb.com.br/forum/lof...php/t1935.html
    //            http://latiumsoftware.com/en/pascal/0011.php
    bs := TMemoryStream.Create;
    if imgLogo.Picture <> nil Then
      if imgLogo.Picture.Graphic <> nil Then
      imgLogo.Picture.Graphic.SaveToStream(bs);
  
    DM.ibqOp.ParamByName('LOGO').LoadFromStream(bs, ftBlob);
  
    DM.ibqOp.ExecSQL;
  End;


La franja horaria es GMT +2. Ahora son las 16:59:27.

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