Não deixar Excluir...

Delphi

04/02/2004

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

Curtidas 0

Respostas

M@rk Knopfler

M@rk Knopfler

04/02/2004

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;


GOSTEI 0
Josemarlourenco

Josemarlourenco

04/02/2004

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


GOSTEI 0
José Alves

José Alves

04/02/2004

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!


GOSTEI 0
Cabelo

Cabelo

04/02/2004

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


GOSTEI 0
POSTAR