 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
ivan_bohne Novato

Registrado: Segunda-Feira, 7 de Janeiro de 2013 Mensagens: 54
|
Enviada: Sex Jan 31, 2014 6:28 pm Assunto: Ler Imagem do banco Firebird jpeg error #42 (RESOLVIDO) |
|
|
Boa noite...
Estou tentando ler imagens que gravei no banco de dados mais esta dando
Erro ao Ler Imagem do banco de Dados Firebird "jpeg error #42" e se dou um select pelo ibexpert e exporto a imagem ela exporta certinho então que dizer que gravou certo agora não estou conseguindo ler
| Código: |
unit EXIBE_ORDEMSERVICO;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, JPEG, DB, Vcl.ExtCtrls, Vcl.StdCtrls;
type
TFORM_EXIBE_OS = class(TForm)
Button1: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FORM_EXIBE_OS: TFORM_EXIBE_OS;
implementation
{$R *.dfm}
uses BD;
procedure TFORM_EXIBE_OS.Button1Click(Sender: TObject);
var
jpgFoto: TJPEGImage;
msFoto: TMemoryStream;
begin
msFoto:=TMemoryStream.Create;
jpgFoto:=TJPEGImage.Create;
TBlobField(CONECTA.ATENDIMENTO.FieldByName('OS')).SaveToStream(msFoto);
jpgFoto.LoadFromStream(msFoto);
jpgFoto:=TJPEGImage.Create;
jpgFoto.LoadFromStream(msFoto);
Image1.Picture.Graphic := jpgFoto;
msFoto.Free;
end;
end.
|
o select ja dou em outro form
Qualquer ajuda e bem vinda Obrigado...
Editado pela última vez por ivan_bohne em Sex Jan 31, 2014 11:03 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
ivan_bohne Novato

Registrado: Segunda-Feira, 7 de Janeiro de 2013 Mensagens: 54
|
Enviada: Sex Jan 31, 2014 11:02 pm Assunto: Re: Erro ao Ler Imagem do banco de Dados Firebird jpeg error #42 |
|
|
Consegui resolver com essa função fica ai a dica para quem passar por isso
| Código: |
unit EXIBE_ORDEMSERVICO;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Classes, Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, JPEG, DB, Vcl.ExtCtrls, Vcl.StdCtrls,
Vcl.DBCtrls;
type
TFORM_EXIBE_OS = class(TForm)
Imagem: TImage;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FORM_EXIBE_OS: TFORM_EXIBE_OS;
implementation
{$R *.dfm}
uses BD;
// function RefreshImage(Campo : TField; Img : TImage) : Double;
// É necessário estar declarado ExtCtrls, DB, Jpeg e Classes na seção Uses.
function RefreshImage(Campo : TField; Img : TImage) : Double;
var
vJpeg : TJPEGImage;
vStream : TMemoryStream;
begin
Result := 0;
{ Verifica se o campo está vázio .}
if not (Campo.IsNull) then
begin
{ Cria objeto do tipo TJPEG e objeto do tipo MemoryStream .}
vJpeg := TJPEGImage.Create;
vStream := TMemoryStream.Create;
{ Trata o campo como do tipo BLOB e salva o seu conteúdo na memória }
TBlobField(Campo).SaveToStream(vStream);
{ Ajusta a posicao inicial de leitura da memória. }
vStream.Position := 0;
{ Carrega da memória os dados, para uma variável do tipo TJPEG
(A partir da posicao 0)}
vJpeg.LoadFromStream(vStream);
{ Retorna o tamanho usado na memória, consequentemente o tamanho do JPEG,
E Exibe o jpg no Timage }
Result := (vStream.Size / 1024);
Img.Picture.Assign( vJpeg);
{ Libera a memória utilizada pelos componentes de conversão o. }
vJpeg.Free;
vStream.Free;
end;
end;
procedure TFORM_EXIBE_OS.FormShow(Sender: TObject);
begin
RefreshImage(CONECTA.ATENDIMENTO.FieldByName('OS'), Imagem);
end;
end.
|
|
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|