Firedac Query Join Update Delete (sem alterar tabelas fisicas)

PostgreSQL

Delphi

25/05/2019

Olá,
Estou fazendo uma consulta unindo 2 tabelas com join
Após a query preenchida eu faço um loop na query
verificando se devo alterar o campo quantidade ou deletar o registro
Depois apresento a query (alterada) num relatório.
.
O problema é que as alterações estão acontecendo na tabela física
Isso é para acontecer mesmo?
.
Eu imagino que como é uma query de 2 tabelas ele não deveria alterar
as tabelas físicas.
.
Será que para isso devo usar outro jeito de fazer?
.
Alguém para dar uma dica?
Alberto

Alberto

Curtidas 0

Respostas

Ricardo Araujo

Ricardo Araujo

25/05/2019

Bom dia, Alberto!

Poderia posta seu código que está usando para esta consulta, assim fica mais fácil, agente te ajudar a resolver seu problema...
GOSTEI 0
Alberto

Alberto

25/05/2019

Olá Ricardo, obrigado por comentar.

A questão não é o código, pois eu poderia programar de uma
maneira diferente para ter o resultado que eu quero,
poderia fazer um select diferente para ter o resultado que
eu quero, mas o que eu quero discutir aqui é o conceito,
e não como chegar ao resultado.

Vamos lá:

SQL: select a.nome, b.quantidade from clientes Join compras b on a.id_cliente = b.fk_cliente

Digamos que o retorno seja a seguinte tabela que estará
num componente TFDQUERY no Delphi (com o nome Query1)

NOME | QUANTIDADE
---------------------
Jose | 2
Maria | 0
Joaquim | 3
Marcos | 1

Digamos que eu quero usar essa query em algum lugar no meu sistema,
Mas antes disso eu vou alterar alguns dados.

NO DELPHI:
Posicionado no registro 2 (Maria)
Query1.delete;

Posicionado no registro 1 (Jose)
Query1.Edit;
Query1.FieldbyName('QUANTIDADE').Value := 5;
Query1.Post;

A Tabela na Query1 ficaria assim

NOME | QUANTIDADE
---------------------
Jose | 5
Joaquim | 3
Marcos | 1

Mas o que acontece com a tabela CLIENTES?
A Maria foi excluída?
Sim? Não? Porque?

E o que acontece com a tabela COMPRAS?
O Jose ficou com a QUANTIDADE = 5?
Sim? Não? Porque?
GOSTEI 0
POSTAR