Ajuda com erro Field XXX cannot be modified Delphi 10 Seattle

Delphi

31/10/2017

Bom dia,
Aqui na empresa estamos convertendo o sistema que era em Delphi 7 para Delphi 10 Seattle.
Surgiu um problema na hora da conversão pois em algumas telas utilizamos o componente TIBQuery para realizar as consultas no banco de dados (Firebird 3.0).
Utilizamos um TClientDataSet ligado a um TDataSetProvider e este ligado ao TIBQuery. Acontece que dentro do meu SQL eu tenho alguns campos "Fantasmas", por exemplo: "0.00 as Percentual". Estes campos são utilizados e alimentados através de um Edit no TClientDataSet em tempo de execução, porém agora no Delphi 10 ocorre um erro de "Field PERCENTUAL cannot be modified". Algumas coisas que já verifiquei e detalhes da rotina:

- O field está vindo como "ReadOnly", o que imagino que pode estar gerando esse problema. No delphi 7 isso não acontecia;

- Não adianta eu adicionar todos os campos da Query no cds (2 clicks no cds > add fields) e trocar a propriedade, pois a query é alterada em tempo de execução de acordo com as opções dos usuários, e se eu faço isso ocorre em alguns campos erro de "Field not found";

- Mesmo alterando a propriedade FieldDefs > Attributes > faReadOnly para false, o erro persiste;

Alguém saberia como ajustar isso? Teria alguma propriedade que eu deveria (des) marcar?

Obrigado.
Windel Ltda

Windel Ltda

Curtidas 0

Respostas

Windel Ltda

Windel Ltda

31/10/2017

Atualizando: Testei com um banco Firebird 2.5 e 2.0 e em ambos o field n ficou como read only.
GOSTEI 0
José Menezes

José Menezes

31/10/2017

Já tentou?
criar outro campo similar e testar?
renomear este campo?
Recriar o campo?
GOSTEI 0
Windel Ltda

Windel Ltda

31/10/2017

Sim, já fiz isso...
Acontece em outros campos também, mas apenas se for Firebird 3.0.
Em todos os que não estão fixos no BD, por exemplo, quando seleciono dessas formas:

0.00 AS PERCENTUAL,
0.00 AS QTDADE,
CAST(NULL AS DATE) AS DTAMOV

ou

EXTRACT(MONTH FROM DTAMOV) AS MES_MOV

São alguns exemplos, mas em todos que são assim acontece isso.
GOSTEI 0
Diogo Silva

Diogo Silva

31/10/2017

No object Inspector clique no seu field e veja se está marcado a propriedade ReadOnly, caso estiver desmarque
GOSTEI 0
POSTAR