luizdspinola Posted June 17, 2020 Share Posted June 17, 2020 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 comment Share on other sites More sharing options...
Recommended Posts