Dúvida na exclusão

Delphi

28/03/2003

Gente alguém pode me ajudar??

É o seguinte... Tenho uma tabela de orçamentos e uma de documentos. Cada orçamento pode ter vários documentos. A tabela de documentos tem um campo para o número do orçamento, para poder saber de qual orçamento o documento pertence... Até ai tudo bem..
No cadastro de orçamentos, tenho o botão excluir, mas se eu excluo o orçamento, tenho q excluir os documentos q pertencem àquele orçamento. Então eu teria que fazer mais ou menos assim, quando o usuário clicar em excluir orçamento, eu tenho q arrumar um jeito de naquele botão colocar uma maneira de filtrar a tabela de documentos (pelo numero do orçamento) e trazer todos os documentos daquele orçamento, e quando trazer, excluí-los... Entenderam??

Alguém tem uma idéia??

Grata,

Rafaela


Rafaela

Rafaela

Curtidas 0

Respostas

Marioguedes

Marioguedes

28/03/2003

Qual o seu banco de dados?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

28/03/2003

Gente alguém pode me ajudar?? É o seguinte... Tenho uma tabela de orçamentos e uma de documentos. Cada orçamento pode ter vários documentos. A tabela de documentos tem um campo para o número do orçamento, para poder saber de qual orçamento o documento pertence... Até ai tudo bem.. No cadastro de orçamentos, tenho o botão excluir, mas se eu excluo o orçamento, tenho q excluir os documentos q pertencem àquele orçamento. Então eu teria que fazer mais ou menos assim, quando o usuário clicar em excluir orçamento, eu tenho q arrumar um jeito de naquele botão colocar uma maneira de filtrar a tabela de documentos (pelo numero do orçamento) e trazer todos os documentos daquele orçamento, e quando trazer, excluí-los... Entenderam?? Alguém tem uma idéia?? Grata, Rafaela

Rafaela,

Uma forma fácil e independente do banco que você usa é no evento beforedele do master (no caso orçamento) executar um query de ação com o parâmetro do número do orçamento. Mais ou menos assim:

// Remover em cascata
Query.SQL.Clear;
Query.SQL.Add(´Delete from documentos where nro_orcamento = :orcamento´);
Query.SQL.ParameterByName(´orcamento´).AsInteger := tbOrcamentoNRO_ORCAMENTO.AsInteger;
Query.SQL.ExecSQL;


GOSTEI 0
Marioguedes

Marioguedes

28/03/2003

Rafaela, caso você use um SGBDR, tudo bem. Com o PARADOX, caso você tenha esta infelicidade, eu não aconselho usar esta técnica [b:84215a8be7]apesar de funcionar também[/b:84215a8be7]. É preferível linkar as duas tabelas através do master source, master field e no BeforeDelete do Master dar um while no filho dando Delete enquanto não for fim de arquivo.

Entedeu?


GOSTEI 0
POSTAR