Ir para conteúdo
  • Cadastre-se

dev botao

Erro FireDAC.


Ver Solução Respondido por Duarte,
  • Este tópico foi criado há 2515 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa tarde,

Se crie o tópico no lugar indevido me perdoe e aceito correções!

Bem, estou enfrentando um problema com FireDAC Delphi 10.1 Berlin, o negocio é seguinte, na hora de gravar os dados da esse erro:  [firedac][phys][fb][blob] not found

O estranho é que não temos nenhum campo blob nas tabelas em questão, alguém já se deparou com isto? Uma informação, na maioria das vezes este erro ocorre com tabelas com master - details. Já desativei as opções: Items To Feth "Blobs" e Items To Cache "Blobs" da FDConnection.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Essa é toda a mensagem de erro?

O BD é Firebird ou Interbase? O componente está configurado para trabalhar com o Firebird ou o Interbase?

Só ocorre em tabelas com master-detail?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde,

Obrigado pelo retorno, 

Banco Dados: FireBird 2.5 win32 class server.

Estrutura dos componentes de acesso: FDQuery + Provider + ClientDataSet

Sim, por incrivel que parece só com master-detail!

 

Há DBExpress.. rsrs, pos-e contras...

Outra coisa, caso tenha se deparado com isso, em alguns caso, muito raros, mais ocorre, mesma estrutura, acontece o seguinte:

Ao gravar dados, do nada os dados são enviado "null" ou seja é como se os componente limpasse os dados, repassando tudo "null" sendo que nos componente visuais "dbgrid, dbedit, etc" estão todos alimentados...

Editado por Duarte
Link para o comentário
Compartilhar em outros sites

  • Consultores
43 minutos atrás, Duarte disse:

Boa tarde,

Obrigado pelo retorno, 

Banco Dados: FireBird 2.5 win32 class server.

Estrutura dos componentes de acesso: FDQuery + Provider + ClientDataSet

Ainda não entendi bem o erro. Aquela é toda a mensagem de erro? Não tem mais nada?

E o componente está configurado para trabalhar com o Firebird?

44 minutos atrás, Duarte disse:

Sim, por incrivel que parece só com master-detail!

Se só acontece com o master-detail, isso pode ser mais fácil de procurar o problema. Tente ver se existe algum exemplo de Master-Detail nas pastas de exemplos do FireDac.

Teste com ele. Isso isola o problema de sua aplicação.

41 minutos atrás, Duarte disse:

Outra coisa, caso tenha se deparado com isso, em alguns caso, muito raros, mais ocorre, mesma estrutura, acontece o seguinte:

Ao gravar dados, do nada os dados são enviado "null" ou seja é como se os componente limpasse os dados, repassando tudo "null" sendo que nos componente visuais "dbgrid, dbedit, etc" estão todos alimentados...

Não me deparei com isso ainda...

 

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bem, parece que consegui resolver, como não é um erro que acontece com frequencia. São centenas de clientes, e em alguns e neste mesmo raramente acontece, mais após estas alterações com centenas de deste até agora não levantou o erro, segue alguns ajuste que fiz na FDConnection e DataSetProvider. pois uso o trio: FDQuery + DataSetProvider + ClientDataSet. Print das configurações:58f1652b45606_Semttulo.png.0fe9c288b9cd66a093b79b377d585549.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
  • Membros Pro
  • Solution

Bom dia,

Quero aqui deixar a solução do problema, pois em nenhum lugar conseguir uma resposta, e depois de muito lutar, graças a Deus achei!

O erro estava no banco de dados, ou seja, corrompido! Depois de checar todos os objetos do banco, não apenas os casuais, mais todos que o firebird nos libera atrás de tabelas do sistema, constatei que, todas as regras de validades em Check dos domínios no firebird são gravados em campos blob na tabela do sistema “Firebird”. Tenho alguns domínios que tem validações no chack “Check” para garantir uma boa integridade do banco, um deles é chamado “D_Situacao” aonde valida as situações aceitáveis pelo banco, foi exatamente neste (domínio) que dentro da tabela interna do firebird que corrompeu.

Solução! Extrai o metabase do banco, crie um novo banco e usei um aplicativo que por sinal gosto muito “DataPump” migrei os dados e pronto...

Poderia apenas fazer um backup/restory, creio que sim, mais como já estava muito chateado com o erro, preferir ser mais cauteloso levando os dados para um banco criado do zero.

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

  • Consultores
1 hora atrás, Duarte disse:

O erro estava no banco de dados, ou seja, corrompido!

Isso faz muito sentido. ^_^

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
22 horas atrás, EMBarbosa disse:

Isso faz muito sentido. ^_^

Sim, o erro em questão "Blob Not Found" tirou o meu sono, rsrs. Logo pelos seguinte fatos: Não tenho nenhum blob no banco!. Não ocorreia em todos os clientes, e são centenas! No cliente em questão ocorria as vezes!

Vejam: se aplicar: SELECT * FROM RDB$FIELDS. Teremos a lista de todos os campos do banco, seja criado por você ou do proprio sistema "Firebird" e o saco é que o firebird usa blobs para guardar informações dentro de si mesmo! foi o caso do meus dominios com checks. veja:

 

Criado pelo proprio fireibird campo Blob para armazenar as validações, pois é logico que podem ter validações enormes. Então imagine que um deste blob "interno" corrompa" já era o banco, dai estava o erro as vezes no clientes, o dominio/check "d_situação" que está presente em alguns tabelas estava corrompido!

 

Eita errinho sacana... rsrs

 

Sem título.png

O Cara evita não trabalhar com "Blob" pois eu os considero um saco. rsrs e lá vem o firebird cheio deles.. rssr

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2515 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.