Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Validar campo blob


alemoraes

Pergunta

Boa noite

Preciso fazer uma validação do campo PAT_FOTO (campo blob no Firebird para Imagem) antes de Salvar, ou seja, 

se não escolheu a Foto e tentar salvar aparece a mensagem de aviso. Só que mesmo selecionando a

foto e tentar salvar,  a mensagem de aviso aparece e não deixar gravar no banco.

Estou usando FDQuery (Firedac) e não achei a instrução AsBlob para o campo

Segue o código: (Coloquei este código no botão de Gravar antes de dar o Post)

     if dmDados.FDQueryPatrimonioPAT_FOTO.AsString = ‘’ then

     begin

       Showmessage('Inclua uma foto para o Patrimônio.');

       BitBtn2.SetFocus;

       Abort;

     end;

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

se não escolheu a Foto e tentar salvar aparece a mensagem de aviso.

Só que mesmo selecionando a foto e tentar salvar,  a mensagem de aviso aparece e não deixar gravar no banco.

coloque o código que voce usa para salvar a foto no banco de dados

e o código que voce usa para selecionar a foto

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas, desculpe a demora, agora que retornei ao projeto.

Estou usando o componente EDBImage

Banco Firebird 2.5

// BOTÃO PARA INSERIR FOTO
procedure TfrmPatrimonio.BitBtn2Click(Sender: TObject);
var
vJpg: TJpegImage;
begin
  if odImagem.Execute then
  begin
    vJpg:= TJpegImage.Create;
    vJpg.LoadFromFile(odImagem.FileName);
    Clipboard.Assign(vJpg);
    EDBImageFoto.PasteFromClipboard;
    vJpg.Free;
  end;
end;

 

// BOTÃO GRAVAR
procedure TfrmPatrimonio.btnGravarClick(Sender: TObject);
begin
   if dmDados.FDQueryPatrimonioPAT_DESCRICAO.AsString = '' then
     begin
       Showmessage('Descrição do Patrimônio deve ser informado!');
       DBEditDescricao.SetFocus;
       Abort;
     end;

     if dmDados.FDQueryPatrimonioPAT_FOTO.AsString then
     begin
       Showmessage('Inclua uma foto para o Patrimônio.');
       //EDBImageFoto.SetFocus;
       BitBtn2.SetFocus;
       Abort;
     end;

   if dmDados.dsPatrimonio.State in [dsInsert, dsEdit] then
     begin
     dmDados.tblPatrimonio.Post;
     dmDados.tblPatrimonio.Refresh;

     lblTotal.Caption:= FormatCurr('R$ #,0.00', SomaColuna); // atualiza soma na coluna valor total
     end;
   //
   restaura;
   desabilita;
   DBLookupComboBox1.SetFocus;
end;

 

Link para o comentário
Compartilhar em outros sites

  • 0

Veja esses links ... tem exemplos que vão te ajudar

https://www.devmedia.com.br/forum/duvida-salvar-imagem-jpg-no-firebird/400958

http://www.activedelphi.com.br/forum/viewtopic.php?t=50025&highlight=cantu

OBS: não aconselho armazenar imagens em banco de dados ( dependendo do tamanho, fica muito lento a pesquisa e trafego pela rede )

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas obrigado pelos posts

Eu compreendi o que você me passou sobre gravar o caminho da foto, pois é bem mais prático

e rápido e senão me engano o componente OpenDialog tem a propriedade InitialDir onde pode

deixar como default  o caminho da pasta para escolher a foto, e escolhendo a foto pelo OpenDialog,

o endereço da foto fica gravado em um DBEditFoto por exemplo.  (Resolvido) 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...