Fórum Não deixar Excluir... #211668

04/02/2004

0

Como eu faço para não deixar o usuário excluir um registro que está ligado a outra tabela?
Ex:

O Campo codigo da tabela CLIENTES está na tabela FATURAS, então, enquanto tiver um registro na tabela FATURAS com o código do cliente, esse cliente não poderá ser excluído da tabela dele...

Valeu!

Marcos.


José Alves

José Alves

Responder

Posts

04/02/2004

M@rk Knopfler

Vc pode escrever este código no evento BeforeDelete da tabela de clientes:

- Supondo as tabelas: tblClientes e tblFaturas, e o campo ´CodCliente´:

procedure tblClientesBeforeDelete(Sender: TObject);
begin
if tblFaturas.Locate(´CodCliente´,
tblClientes.FieldByName(´CodCliente´).Value, []) then
begin
ShowMessage(´Este cliente não pode ser excluído, há faturas em seu nome!!!);
Abort; //Este comando que ´pára´ a exclusão
end;
end;


Responder

Gostei + 0

04/02/2004

Josemarlourenco

O ideal mesmo é você usar um RDBMS, e deixar por conta dele o controle da integride referencial.
Que tal pensar nesta hipótese?
Exemplos de RDBMS:
- Fire bird
- Interbase
- My SQL
- PostGreSQL
- Oracle
- SQL Server
- etc, etc...

Mas, para um controle manual, a dica do M@rk Knopfler está correta.

Josemar


Responder

Gostei + 0

05/02/2004

José Alves

O ideal mesmo é você usar um RDBMS, e deixar por conta dele o controle da integride referencial. Que tal pensar nesta hipótese? Exemplos de RDBMS: - Fire bird - Interbase - My SQL - PostGreSQL - Oracle - SQL Server - etc, etc... Mas, para um controle manual, a dica do M@rk Knopfler está correta. Josemar


No Caso eu utilizo o INTERBASE. Como faço esse processo automatizado de não deixar fazer a exclusão?

Valeu

PS: M@rk Knopfler - Salve Dire Straits!


Responder

Gostei + 0

05/02/2004

Cabelo

Para realmente manter a integridade da sua base de dados, o correto seria criar uma chave estrangeira nas tabela, associando assim os campos, isto serve para todas as tabelas que contiverem o mesmo campo e não puderem ser excluídas..

Sem mais

Cabelo


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar