Jump to content

Duvida ao usar try/except com EDatabaseError


Recommended Posts

Olá a todos.

Estou com uma dificuldade ao desenvolver uma inserção no banco de dados.

Tenho um campo auto inc personalizado que é gerenciado pela aplicação, utiliso try/except combinado com EDatabaseError para administrar erro caso aconteça tentativa de inserção duplicada mas a execução interrompe sem passar pelo except

Vejam o codigo abaixo:

procedure insere_dados(NUMERO: INTEGER):

begin

  try

     TABELA.FieldByName('INC').AsString:= NUMERO;                   //CHAVE PRIMARIA

      TABELA.FieldByName('DATA').AsString:= DateToStr(now);
      TABELA.FieldByName('USUARIO').AsString:= ID_Usuario;
      TABELA.Post;
      TABELA.ApplyUpdates;                                                          //ATUALIZA BASE DE DADOS
      MessageDlg('Informações inseridas com sucesso.', mtInformation, [mbOK]);
  except
    on E: Exception do
    begin
      TABELA.Cancel;
      TABELA.CancelUpdates;         //CANCELA ATUALIZACAO
      NUMERO:= NUMERO+1;         //INCREMENTA NUMERO
      insere(NUMERO);                    //CHAMA A PROC NOVAMENTE
    end;        

end;

Link to post
Share on other sites
×
×
  • Create New...