Fórum Como fazer para apagar dados em duas tabelas? #390067

06/11/2010

0

Amigos,          Como fazer o codigo para apagar o Aluno da tabela ALUNOTURMA e também apagar as notas referente as este aluno da tabela NOTAS, lembro que na tabela ALUNOTURMA tem o campo MATRICULA_ALUNO e na tabela NOTAS tem o campo MATRICULA_ALUNO_NOTAS os quais guardão a matricula do aluno, abaixo tenho o codigo que já está apagando o aluno. Mazo.
procedure TFrmCadTurDisc.BtnExcluirAlunoClick(Sender: TObject);
begin
        if not DmDados.IBQryAlunoTurma.IsEmpty then
  begin
    if Mensagem('Tem Certeza Que Deseja Excluir o Aluno da Turma?') then
    begin
       DmDados.IBQryAlunoTurma.Delete;        DmDados.IBQryAlunoTurma.Close;
       DmDados.IBQryAlunoTurma.Open;
    end;
  end
  else
    ShowMessage('Não existe nenhum Aluno na Turma para apagar!'); end;
Osmar

Osmar

Responder

Posts

06/11/2010

Rafael Ribeiro

Nos relacionamentos das tabelas, ao relacionar as chaves estrangeiras você tem que colocar "CASCADE" em updates e deletes.

Espero ter ajudado.

Rafael
Responder

Gostei + 0

06/11/2010

Osmar

Como faço Rafael,                             Uso Firebird e Ibexpert Delphi 7? Mazo
Responder

Gostei + 0

15/11/2010

Flavia Santos

Qual ferramenta vc utiliza para criar seu banco de dados? No caso do IBExpert vc  pode alterar as colunas DELETE RULE da chave estrangeira da tabela NOTAS de NO ACTION para CASCADE, assim quando vc deletar dados da tabela Alunos, os dados relacionados na tabela Notas serão apagados automaticamente. Ou vc pode fazer tbm via código:

- Primeiro apaga a chave estrangeira anterior:

ALTER TABLE Tabela_de_Notas DROP CONSTRAINT NomeChaveEstrangeiraAtual;


- Depois cria uma nova com a opção de deletar em cascata:

ALTER TABLE NOTAS ADD CONSTRAINT FK_NOTAS FOREIGN KEY (MATRICULA_ALUNO_NOTAS) REFERENCES TURMA_ALUNO(MATRICULA_ALUNO) ON DELETE CASCADE
flw,
Responder

Gostei + 0

22/05/2011

Osmar

Agradeço a todos o problema já foi resolvido.   Osmar.
Responder

Gostei + 0

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

Aceitar