Arquivo de foto 3

22/05/2009

Ola Rodrigo     Tem uma situação aqui que eu vou precisar carregar o foto diretamente do banco sqlserver e um binario , tenho essa query aqui que vc me deu um exemplo de como carregar o aquivo de foto no disco mais como ficaria se eu quizesse trazer direto do banco sqlserver ,mesmo que nao fique uma coisa profissional to precisando aprender a fazer isso      function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
     M: TMotoqueiro;
begin      if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then                     begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                        if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro['fotopath']) then                          m.foto := DMBUSCA.QryConsultaMotoqueiro.FieldByName('fotopath').AsString ;                          Result := M;
                    end                else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end;
Carlos Faria

Carlos Faria

Curtidas 0

Respostas

Carlos Faria

Carlos Faria

22/05/2009

Podemos ser rapidos nesse chamado
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Antes de continuar este chamado gostaria que desse uma lida neste Link.
     http://social.msdn.microsoft.com/forums/pt-BR/520/thread/e6786a2c-8eb2-4a93-9f76-9e9559b4ca4d/

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Certo vou ler e te retorno
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola wesley   Interessante o artigo   Realmente o mais pratico seria armazenar em disco mais no meu caso  quantidade de fotos e pequena entao acho mais pratico armazenar no servidor sql nesse momente pois fica mais facil para o backup e tambem sendo as maquinas aqui vista fica dificil buscar de um servidor o caminho do arquivo pois ai sim fica bem pesado     bom mesmo e aprender a fazer das duas maneiras eu abri dois chamados para esse tipo de busca ja aprendi fazer em disco agora realmente falta aprender a salvar editar e buscar diretamente no servidor mesmo que no futuro eu mude e ate uma necessidade saber fazer isso
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Bom vamos lá, você deve criar um campo no teu bd do tipo Image. Para armazenar a imagem, depois em um dbimage, você irá carregar esta imagem para poder gravar, não sei como você trabalha com os componentes, já que nã0 usa ClientDataSet, mas creio que seja normal. Me passe mais informaçoes de como você trabalha com a gravação dos dados.

att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

vamos la   no banco sql eu tenho um campo image onde o arquivo gravado la fica assim '0xFFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C2132323232323232323232323232323232323232'   este é o formato do arquivo ja gravado em banco     na query eu faço o seguinte    function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
     M: TMotoqueiro;
begin      if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then                     begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;                         aqui falta trazer a foto                         Result := M;
                    end                else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end;       e depois claro gravar em banco e atualizar      
 
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Blz Carlos,
  Estou preparando teu exemplo. Logo retornarei.

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

ola wesley
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

ola wesley ok no aguardo
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Vamos lá Carlos,
  Coloque um TImage, na tua aplicação e coloque o código abaixo também em negrito, para poder carregar a imagem do motoqueiro.

 function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
     M: TMotoqueiro;
     BlobStream : TStream;
     Bitmap: TBitmap; // sem a unit 'jpeg' essa classe não existiria
begin
  try
    Bitmap := nil;
    Bitmap := TBitmap.Create;
    dmbusca.qryconsultaMotoqueiro.Open;
    BlobStream :=  SQLQuery1.CreateBlobStream(dmbusca.qryconsultaMotoqueiro.FieldByName('LOGO'),bmRead);
    Bitmap.LoadFromStream(BlobStream);
    Image1.Picture.Assign(Bitmap);
    ShowMessage('Imagem Carregada com sucesso');
  finally
    FreeAndNil(BlobStream);
  end;

     if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then                    
               begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;                         aqui falta trazer a foto                        
                     Result := M;
               end              
               else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end;

Fico no aguardo do seu retorno.

Att,
Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola Wesley peço desculpas por nao ter resolvido os chamados hoje ,estou correndo atraz de resolver aquele maldito problema  com a maldita da imprensora bematech mp20 ou caso contrario todo meu projeto esta ameaçãdo de ser migrado para outra linguagem e claro outro programador vai tomar meu lugar tambem. Nao to afim que isso aconteça.    Vou passar o fim de semana consultando paes de santo, mae Dina,Mãe de santo  o que for preciso para resolver aquele maldito e no maximo ate na terça se eu ainda tiver emprego eu respondo todos os chamados   
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Que m. hein cara ? Tu lembra qual é o chamado ? Pois não to lembrando não. este chamado esta comigo? Se tiver vamos voltar nele e tentar outras coisas caras. Emprego é fogo cara. Estou a disposição. Volta a responder este chamado lá no da impressora.

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola wesley   Nao deu certo   1 dos motivos eu criei a function em uma unit de busca e uso a function em varios formularios de projeto entao eu tenho que passar o image1 como parametro para os outros formularios     estou enviando para vc a unit para vc colocar o codigo nela e executar ai no meu sql vc tem uma copia ai se nao tiver eu envio outra ok     //esta function esta dentro de uma unit de busca   function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
     M: TMotoqueiro;
begin      if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then                     begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;                          if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro['fotopath']) then                          m.foto := traga a foto do servidor sql aqui se ela nao for nulla ,ser for nula nao traga nada  ;                          Result := M;
                    end                else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end; end;
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos ,
Como assim não deu certo ? Cade o código que eu te mandei ? Vote tem que adaptar o exemplo a sua necessidade. Esta function retorna um TMotoqueiro, dai você tem que criar um campo Foto : TImage, e armazenar neste campo o exemplo que te mandei, dai na hora que você for passar para os outros forms, ele já irá pegar esta foto no teu TMotoqueiro, assim coo já pega hoje o nome ,CategoriaDiaria, vl_Categoria_diaria, etc. Então Crie uma foto : TImage, e faço o exemplo como te mandei.

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

OLA WESLEY     COMO TE DISSE AQUI NAO DEU CERTO RODANDO NA UNIT , PQ VC FEZ MENSAO DIRETA AO COMPONENTE IMAGE1   RODANDO NO FORM PARA VERIFICAR O EXEMPLO NAO RODOU VEJA AI NO MEUS FONTES PARA VC VER !!
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos ,
  Você terá que dar Uses em ExtCtrls e declarar um Campo/Field em TMotoqueiro FotoMotoqueiro : TImage;


TMotoqueiro RECORD
   Propriedades que já existem hoje
   FotoMotoqueiro : TImage // Add esta daqui
END;

var
     M: TMotoqueiro;
     BlobStream : TStream;
     Bitmap: TBitmap; // sem a unit 'jpeg' essa classe não existiria

begin
  try
    M.FotoMotoqueiro := TImage.Create(Self);
    Bitmap := nil;
    Bitmap := TBitmap.Create;
    dmbusca.qryconsultaMotoqueiro.Open;
    BlobStream :=  SQLQuery1.CreateBlobStream(dmbusca.qryconsultaMotoqueiro.FieldByName('LOGO'),bmRead);
    Bitmap.LoadFromStream(BlobStream);
    M.FotoMotoqueiro.Picture.Assign(Bitmap);
    ShowMessage('Imagem Carregada com sucesso');
  finally
    FreeAndNil(BlobStream);
  end;


Lá no form onde for exibir a imagem do Motoqueiro você faz isso.

  Image1.Picture.Assign(M.FotoMotoqueiro.Picture);

Att,

Wesley Y

GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Qual unit eu devo adicionar na minha unit de busca para ter acesso ao self   so isso que ta pegando aqui por enquando
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Pode Passar Nil sem problemas.

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola wesley   ta dando acess violation  
function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
      M: TMotoqueiro;
      BlobStream : TStream;
      Bitmap: TBitmap; // sem a unit 'jpeg' essa classe não existiria begin
     if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then                     begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;                          if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro['fotopath']) then                          m.foto := DMBUSCA.QryConsultaMotoqueiro.FieldByName('fotopath').AsString ;                          Result := M;
                    end                else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end; end;
esta aqui e a function como ficaria exatamente aqui dentro
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Carlos, Segue function com a alteração.
function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
      M: TMotoqueiro;
      BlobStream : TStream;
      Bitmap: TBitmap; // sem a unit 'jpeg' essa classe não existiria
begin
    Bitmap := nil;
    Bitmap := TBitmap.Create;
    m.Foto := TImage.Create(Nil);
     if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then
                    begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;
                         if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro['fotopath']) then
                         begin
                           BlobStream  :=   (DMBUSCA.QryConsultaMotoqueiro.CreateBlobStream(DMBUSCA.QryConsultaMotoqueiro.FieldByName('fotopath'),bmRead);
                           Bitmap.LoadFromStream(BlobStream);
                           m.Foto.Picture.Assign(Bitmap); // Foto tem qeu ser do tipo TImage, como te falei no outro chamado, e não string;
                         end;
                         Result := M;
                    end
               else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end;
end;

Att,
Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola Wesley   nao consegui cara deu errado     o delphi ta reclamando esse camarada aqui esse camarada de vermelho para rodar o projeto nao sei so resolvendo esse probleminha vai funcionar por isso estou te enviando o projeto no formato delphi 2009 e o arquivo de banco de dados sql server 2005 developer studio para vc fazer um teste real ai ok e lembrando que precisamos criar um rotina para gravar essa foto e atualizar no banco Vais que é sua Wesley     eu fiz apenas uma alteração mudei o nome do campo foto para ds_foto pois tem um fotopath la onde eu gravo o caminho do banco     fico agurdando para gente fechar esse chamado ainda hoje se der :   to querendo fechar esses chamados e dar um tempo de pc e de programação     if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro['ds_foto']) then
                         begin
                           BlobStream  := (DMBUSCA.QryConsultaMotoqueiro.CreateBlobStream(DMBUSCA.QryConsultaMotoqueiro.FieldByName('Ds_Foto'),bmRead) ;
                           Bitmap.LoadFromStream(BlobStream);
                         m.ds_foto.Picture.Assign(Bitmap); // Foto tem qeu ser do tipo TImage, como te falei no outro hamado, e não string;
//                         end;       projeto no formato delphi 2009 https://www.devmedia.com.br/imagens/discovirtual/187481/20093105.zip       arquivo de backup do banco sql server e so vc fazer um restore ai
https://www.devmedia.com.br/imagens/discovirtual/187481/BACKUP20093105.rar
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola Wesley Agora que vc tem os fontes e o banco ai vamos matar esse chamado hoje      
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Estou analisando neste momento teu projeto.

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola wesley   estou aguardando vendo se agente fecha isso ainda hoje
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola Wesley   Alguma dificuldade ai ?
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Estava ontem com problemas na minha internet, e na importação do teu BD, mas resolvi o mesmo com o Consultor Rodrigo Carreiro.
   Peço ate amanha para poder resolver problema.
  Grato pela compreensão.

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

ola Wesley   Tudo bem entao , vamos fechar amanha esse chamado !
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Neste fonte que você mandou nao encontro o código que te mandei anteriormente, qual é o formulário ? Este fonte esta atualizado ?
  Fico no aguardo para fecharmos hoje, só vou dormir depois que fechar este.

Att,
Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Veja se isso resolve seu problema. Segue abaixo codigo da UBusca, dai vocE analisa onde esta //++ que foram as linhas que eu adicionei ou modifiquei. Fico no aguardo

   http://www.4shared.com/file/109731896/82ad9349/ubusca.html


Att,

Wesley Y

GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola Wesley   Esse ta dificil , eu rodei a unit deu tudo certo , no frmlocacao eu coloquei a seguinte linha      if Length(edtMatricula.Text) >= 4 then
  begin
    M := GetConsultaMotoqueiro(edtMatricula.Text);
    if m.NomeMotoqueiro <> EmptyStr then
    begin
      edtMotoqueiro.Text := m.NomeMotoqueiro;
      edtcategoriaDiaria.Text := m.CategoriaDiaria;
      edtvalorlocacao.Text := FloatToStr(m.vl_Categoria_diaria);
      edtlimitedebito.Text := FloatToStr(m.Vl_limite_debito);
      edtsaldoatual.Text := FloatToStr(m.Vl_limite_debito);
      Image1.Picture.Assign(M.foto.Picture); end ; end;     da o seguinte erro   bitmap image is not a validad   seria isso talves o formato da imagem que esta no sql ? se for por exemplo jpeg como faço para chamala ?        
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Fiz alguns testes com JPG, mas não ficaram muito bons não, as vezes aparecia este erro. Seria bom você botar como BMP, já que são poucas imagens certo ?
  Apesar de na versão 2009, o TImage vir com suporte a JPG, tenho tido estes problemas também, meu amigo.
Att,

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,

  Meu amigo, consegui fazer a alteração ?

Att,

Wesley Y
 
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola wesley   Nao consegui ainda , o problema e que nao temos a foto do motoqueiro para atualizar no banco temos somente aquele arquivo que esta gravado no servidor sql , esse chamado ta de rosca  
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Você tem que saber qual é o formato que esta no SQL Server, tente salvar um BMP nele, e fazer o teste.

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

ola Wesley no sql server esta em formato jpeg , mais como converter o arquivo ja gravado no servidor sql server
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Você não pode pegar a foto, e salvar como BMP? E depois salvar ela no banco ?

Att,

Wesley Y
GOSTEI 0
Devmedia

Devmedia

22/05/2009

Carlos,
o consultor está esperando sua resposta para dar prosseguimento ao chamado.
Caso o problema tenha sido solucionado, por favor, nos sinalizar para finalizarmos o chamado.
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola wesley   Estava analizando sua resposta aqui , bom vamos la   A empresa ja tem quase 800 motoqueiros cadastrados e nao temos mais as fotos desse camarada entao tem que ter um jeito de buscalas tbem em formato jpeg se nao fica dificil para mim   veja o que vc pode fazer !!
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Veja este exemplo e faça as modificações para teu projeto. Ele mostra como carregar uma JPG do teu BD

Dar Uses em :

 DBTables, jpeg;

procedure TForm1.Button1Click(Sender: TObject);
var
  BlobStream : TBlobStream;
  JpegImage : TJPEGImage;
begin
  BlobStream := TBlobStream.Create(Table1.FieldByBame('Imagem'), bmRead);
  if BlobStream.Size <> 0 then
  begin
    JpegImage := TJPEGImage.Create;
    try
      JpegImage.LoadFromStream(BlobStream);
      Image1.Picture.Assign(JpegImage);
    finally
      BlobStream.Free;
      JpegImage.Free;
    end;
  end;
end;


Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola Wesley   como ficaria nesse funcao aqui , e como ficaria la no form onde eu chamo a foto         function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
      M: TMotoqueiro;
      BlobStream : TStream;
      Bitmap: TBitmap; // sem a unit 'jpeg' essa classe não existiria
begin
    Bitmap := nil;
    Bitmap := TBitmap.Create;
    m.ds_foto := TImage.Create(nil);
     if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then
                    begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;
//                         if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro['ds_foto']) then
//                         begin
//                           BlobStream  := (DMBUSCA.QryConsultaMotoqueiro.CreateBlobStream(DMBUSCA.QryConsultaMotoqueiro.FieldByName('Ds_Foto'),bmRead) ;
//                           Bitmap.LoadFromStream(BlobStream);
//                           m.ds_foto.Picture.Assign(Bitmap); // Foto tem qeu ser do tipo TImage, como te falei no outro chamado, e não string;
//                         end;
                         Result := M;
                    end
               else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end;
end;
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Vou verificar e fazer as alterações, mas qual dificuldade você encontrou ?

Att,

Wesley Y
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Ola Wesley dificuldade total nao tenho pratica em trabalhar com nenhum desses componentes , acho se vc montar a query e testar ai como vc tem minha base de dados fica mais facil
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Seguem as alterações.


uses
 DBTables, jpeg;

function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
      M: TMotoqueiro;
      BlobStream : TStream;
      JpegImage : TJPEGImage;
begin
    Bitmap := nil;
    Bitmap := TBitmap.Create;
    m.ds_foto := TImage.Create(nil);
     if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then
                    begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;

                        BlobStream := TBlobStream.Create(DMBUSCA.QryConsultaMotoqueiro.FieldByName('Ds_Foto'), bmRead);
                        if BlobStream.Size <> 0 then
                        begin
                          JpegImage := TJPEGImage.Create;
                          try
                            JpegImage.LoadFromStream(BlobStream);
                            Image1.Picture.Assign(JpegImage);
                          finally
                            BlobStream.Free;
                            JpegImage.Free;
                          end;
                        end;
                        m.ds_foto.Picture.Assign(JpegImage); // Foto tem qeu ser do tipo TImage, como te falei no outro chamado, e não string;
                        Result := M;
                    end
               else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end;
end;

Att,

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Seguem as alterações.


uses
 DBTables, jpeg;

function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
      M: TMotoqueiro;
      BlobStream : TStream;
      JpegImage : TJPEGImage;
begin
    Bitmap := nil;
    Bitmap := TBitmap.Create;
    m.ds_foto := TImage.Create(nil);
     if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then
                    begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;

                        BlobStream := TBlobStream.Create(DMBUSCA.QryConsultaMotoqueiro.FieldByName('Ds_Foto'), bmRead);
                        if BlobStream.Size <> 0 then
                        begin
                          JpegImage := TJPEGImage.Create;
                          try
                            JpegImage.LoadFromStream(BlobStream);
                            Image1.Picture.Assign(JpegImage);
                          finally
                            BlobStream.Free;
                            JpegImage.Free;
                          end;
                        end;
                        m.ds_foto.Picture.Assign(JpegImage); // Foto tem qeu ser do tipo TImage, como te falei no outro chamado, e não string;
                        Result := M;
                    end
               else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end;
end;

Att,

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Seguem as alterações.


uses
 DBTables, jpeg;

function getConsultaMotoqueiro(aMatricula: string): TMotoqueiro;
var
      M: TMotoqueiro;
      BlobStream : TStream;
      JpegImage : TJPEGImage;
begin
    Bitmap := nil;
    Bitmap := TBitmap.Create;
    m.ds_foto := TImage.Create(nil);
     if Length(aMatricula) >= 4 then
          begin
               with dmbusca.qryconsultaMotoqueiro do
               begin
                   Close;
                   SQL.clear;
                   SQL.add('select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA and dt_saida is null ');
                   ParamByName('pMATRICULA').AsString := aMatricula;
                   open;
               end;
               if not dmbusca.qryconsultaMotoqueiro.isempty then
                    begin
                         m.NomeMotoqueiro := dmbusca.qryconsultaMotoqueiro.FieldByName('nome').asstring;
                         M.CategoriaDiaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Diaria').asstring;
                         m.vl_Categoria_diaria :=DMBUSCA.QryConsultaMotoqueiro.FieldByName('Vl_Categoria').AsFloat;
                         m.Vl_limite_debito := DMBUSCA.QryConsultaMotoqueiro.FieldByName('LIMITE_DEBITO').AsFloat;

                        BlobStream := TBlobStream.Create(DMBUSCA.QryConsultaMotoqueiro.FieldByName('Ds_Foto'), bmRead);
                        if BlobStream.Size <> 0 then
                        begin
                          JpegImage := TJPEGImage.Create;
                          try
                            JpegImage.LoadFromStream(BlobStream);
                            Image1.Picture.Assign(JpegImage);
                          finally
                            BlobStream.Free;
                            JpegImage.Free;
                          end;
                        end;
                        m.ds_foto.Picture.Assign(JpegImage); // Foto tem qeu ser do tipo TImage, como te falei no outro chamado, e não string;
                        Result := M;
                    end
               else
                    ShowMessage('Motoqueiro não localizado,verifique o numero da matricula !');
          end;
end;

Att,

Wesley Y
GOSTEI 0
Devmedia

Devmedia

22/05/2009

Carlos,
a resposta do consultor respondeu sua dúvidas? Podemos encerrar o chamado?
GOSTEI 0
Carlos Faria

Carlos Faria

22/05/2009

Nao consegui fazer funcionar aqui , vc tem meus fontes ai seria possivel fazer teste nele e gravar uma video me demonstrando como ?
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

22/05/2009

Olá Carlos,
  Qual erro que esta dando ? tem como você gravar uma video com o erro ? E o que você fez ?

Att,

Wesley Y
GOSTEI 0
Devmedia

Devmedia

22/05/2009

Carlos,
estamos esperando a sua resposta para darmos prosseguimento ao chamado.
GOSTEI 0
POSTAR