Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Insertar en un ClientDataSet una imagen Bitmap (https://www.clubdelphi.com/foros/showthread.php?t=48067)

David 14-09-2007 13:47:28

Insertar en un ClientDataSet una imagen Bitmap
 
Hola

Creo una imagen bitmap por código y además tengo un ClientDataSet , creado en memoria .

La idea es la siguiente , guardar el bitmap en el clientDataSet en memoria.

el código empezaria más o menos así :

Código Delphi [-]

procedure TForm1.Button1Click(Sender: TObject);
var
 bmp: TBitmap;
 miClientDataSet : TClientDataSet;
begin

  // Creo el clientDataSet en Memoria
  miClientDataSet :=  TClientDataset.Create(nil);
  miClientDataSet.FieldDefs.Add('IMAGEN', ftBlob, 0, False);

  miClientDataSet.CreateDataSet;
  miClientDataSet.Open;

  bmp := TBitmap.Create;
  bmp.Width := 100; 
  bmp.Height := 100;
  bmp.Canvas.lock;
  //luego le asigno la imagen al bmp
  bmp.Canvas.unlock;

  // Ahora me gustaria hacer algo así
  miClientDataSet.Edit;
  miClientDataSet.FieldByName('IMAGEN').As.¿?.. := ¿? ;
  miClientDataSet.post;

end;

El caso es que no sé como insertar la imagen en el clientDataSet , por que no existe AsBlob , y luego no se que asignarle , si bmp , bmp.Canvas..., etc....

Un saludo

duilioisola 14-09-2007 13:56:33

Prueba con :

LoadFromFile
LoadFromStream

Algo asi como :

Código Delphi [-]
miClientDataSet.FieldByName('IMAGEN').LoadFromFile('archivo.bmp');

también encontré con F1 sobre LoadFromStream esto que te podría ayudar:

Código Delphi [-]
var

  MS: TMemoryStream;
begin
  if not (ClientDataSet1.State in [dsInsert, dsEdit]) then
    ClientDataSet1.Insert;
  MS := TMemoryStream.Create();
  try
    Image1.Picture.Bitmap.SaveToStream(MS);
    ClientDataSet1Images.LoadFromStream(MS);
  finally
    MS.Free;
  end;
  ClientDataSet1.Post;

end;


La franja horaria es GMT +2. Ahora son las 10:32:40.

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