[firebase-br] JPeg em um blob

marcelo - teflamar marcelo em teflamar.com.br
Qua Ago 3 11:13:34 -03 2005


o exemplo do site não funcionou, mas esses exemplos abaixo são garantidos, 
delphi 7

unit blob1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, IBDatabase, IBCustomDataSet, IBQuery, Grids,
  DBGrids, OleCtnrs,
  dbtables,
  jpeg, ExtCtrls;

//***********************************************

procedure TForm1.btgravar1Click(Sender: TObject);
begin
  t.StartTransaction;
  q.sql.text:='INSERT INTO TESTE (COD,NOME,NOME_ARQ,BLOB1) VALUES 
(0,:NOME,:NOME_ARQ,:BLOB1)';
  try
    q.parambyname('NOME').asstring:='Teste '+datetostr(now);
    q.parambyname('NOME_ARQ').asstring:=edit1.text;
    q.ParamByName('BLOB1').LoadFromFile(edit1.text,ftBlob);
    q.ExecSQL;
    t.Commit;
  except
  on e:exception do
     begin
       ShowMessage(e.message);
     end;
  end;
end;


procedure TForm1.btrecuperarClick(Sender: TObject);
var
    warquivo   :string;
    BlobStream : TStream;
    FileStream : TFileStream;
begin
    filestream:=nil;
    blobstream:=nil;
    warquivo:='c:\temp\'+q2.fieldbyname('nome_arq').asstring;
  try
    BlobStream := q2.CreateBlobStream(q2.FieldByName('blob1'),bmRead);
    FileStream := TFileStream.Create(warquivo, fmCreate or fmOpenWrite);
    FileStream.CopyFrom(BlobStream, 0);
  finally
    // Liberando instâncias
    blobstream.free;
    filestream.Free;
    execfile(warquivo);
  end;
end;





Mais detalhes sobre a lista de discussão lista