Firedac Query Join Update Delete (sem alterar tabelas fisicas)
25/05/2019
0
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?
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
Curtir tópico
+ 0
Responder
Posts
13/09/2019
Ricardo Araujo
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...
Poderia posta seu código que está usando para esta consulta, assim fica mais fácil, agente te ajudar a resolver seu problema...
Responder
13/09/2019
Alberto
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?
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?
Responder
Clique aqui para fazer login e interagir na Comunidade :)