FDQuery atualizando só alguns campos
13/11/2023
0
Olá, pessoal
Resumidamente, tenho no meu BD Firebird uma tabela PESSOA e outra tabela ESTADO, bem como um componente FDQuery, no Delphi, que tem o comando abaixo:
(Tem também a tabela de município com a mesma lógica mas simplifiquei para deixar mais simples)
A questão é que consigo ler e atualizar os dados dessa query, exceto pelo campo ID_ESTADO. Ele é até lido, mas não consigo fazer um Post de forma que ele seja gravado. E a propriedade readOnly desse campo está em False (curiosamente veio como true).
Alguma luz do que pode estar impedindo a sua atualização?
Resumidamente, tenho no meu BD Firebird uma tabela PESSOA e outra tabela ESTADO, bem como um componente FDQuery, no Delphi, que tem o comando abaixo:
SELECT ID, TIPO, NOME, CNPJCPF, RAZAO, CEP, ENDERECO, NUMERO, COMPLEMENTO, BAIRRO, E.NOME AS ESTADO, E.ID AS ID_ESTADO, FROM PESSOA AS P INNER JOIN ESTADO AS E ON E.ID = P.ID_ESTADO
(Tem também a tabela de município com a mesma lógica mas simplifiquei para deixar mais simples)
A questão é que consigo ler e atualizar os dados dessa query, exceto pelo campo ID_ESTADO. Ele é até lido, mas não consigo fazer um Post de forma que ele seja gravado. E a propriedade readOnly desse campo está em False (curiosamente veio como true).
Alguma luz do que pode estar impedindo a sua atualização?
André Duarte
Curtir tópico
+ 0
Responder
Posts
13/11/2023
Arthur Heinrich
Talvez o componente esteja interpretando que este resultado é "principalmente" da tabela PESSOA. Todas as colunas que não são da tabela PESSOA provavelmente apresentam o mesmo problema.
Se você quer fazer a atualização via grid, com múltiplas tabelas envolvidas, provavelmente terá que escrever o código que faça o update correspondente a cada tabela, separadamente.
Se você quer fazer a atualização via grid, com múltiplas tabelas envolvidas, provavelmente terá que escrever o código que faça o update correspondente a cada tabela, separadamente.
Responder
13/11/2023
André Duarte
Talvez o componente esteja interpretando que este resultado é "principalmente" da tabela PESSOA. Todas as colunas que não são da tabela PESSOA provavelmente apresentam o mesmo problema.
Se você quer fazer a atualização via grid, com múltiplas tabelas envolvidas, provavelmente terá que escrever o código que faça o update correspondente a cada tabela, separadamente.
Se você quer fazer a atualização via grid, com múltiplas tabelas envolvidas, provavelmente terá que escrever o código que faça o update correspondente a cada tabela, separadamente.
A ideia vai ser atualizar um campo por vez, embora haja um DBGrid listando. Inclusive coloquei as tabelas ESTADO e MUNICIPIO naquele DropDownList que puxa os campos de 2 datasets simultâneos, um da respectiva tabela e outro da query. Eles listam corretamente os estados e cidades pelo nome.
Em último caso usarei um FDCommand setando manualmente estes campos após o post do FBQuery principal, na linha do que vc falou acima.
Obrigado pela resposta!
Responder
Clique aqui para fazer login e interagir na Comunidade :)