Fórum Arquivo de foto 3 #5965

22/05/2009

0

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

Responder

Posts

23/05/2009

Carlos Faria

Podemos ser rapidos nesse chamado
Responder

Gostei + 0

24/05/2009

Wesley Yamazack

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
Responder

Gostei + 0

25/05/2009

Carlos Faria

Certo vou ler e te retorno
Responder

Gostei + 0

25/05/2009

Carlos Faria

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
Responder

Gostei + 0

26/05/2009

Wesley Yamazack

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
Responder

Gostei + 0

26/05/2009

Carlos Faria

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      
 
Responder

Gostei + 0

27/05/2009

Wesley Yamazack

Blz Carlos,
  Estou preparando teu exemplo. Logo retornarei.

Att,

Wesley Y
Responder

Gostei + 0

27/05/2009

Carlos Faria

ola wesley
Responder

Gostei + 0

27/05/2009

Carlos Faria

ola wesley ok no aguardo
Responder

Gostei + 0

28/05/2009

Wesley Yamazack

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
Responder

Gostei + 0

30/05/2009

Carlos Faria

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   
Responder

Gostei + 0

30/05/2009

Wesley Yamazack

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
Responder

Gostei + 0

31/05/2009

Carlos Faria

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;
Responder

Gostei + 0

31/05/2009

Wesley Yamazack

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
Responder

Gostei + 0

31/05/2009

Carlos Faria

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 !!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar