Fórum Try Exception não funciona. #241328

04/07/2004

0

Tenho este código no meu botão apagar.

procedure TFrmPrincipal.SpeedButton5Click(Sender: TObject);
begin
if MessageDlg(´Você deseja realmente deletar este registro?´,
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
ADOQuery1.delete;
end;

So que se o banco de dados estiver vazio ele dá um erro, ja pesquisei sobre try, exception aqui no forum mais ainda não entendi o funcionamento.
Uso ADO com Acess e delphi7. Gostaria de um exemplo fácil e prático.


Uoquisala

Uoquisala

Responder

Posts

05/07/2004

Dataclass

Colega,

Acredito que bastaria você testar se o DataSet está vazio,desta forma:



  if ADOQuery1.IsEmpty() then
    ShowMessage(´Não existem registros!´)
  else
    ADOQuery1.Delete;



Responder

Gostei + 0

05/07/2004

Vinicius2k

Colega,

A solução do colega DataClass é a mais apropriada... se vc já sabe que vai haver uma exceção, porque deixá-la ocorrer?

Apenas para seu conhecimento, os blocos try(´tente´)...except(´exceção´), visam interceptar erros da aplicação e tomar alguma providência indicada por vc... por exemplo:
if MessageDlg(´Você deseja realmente deletar este registro?´, 
               mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
  try  
    ADOQuery1.delete; 
  except
    ShowMessage(´Ocorreu um erro !´);
  end; 
end;


ou se vc desejar exibir ou comparar alguma coisa na mensagem original da exceção pode fazer assim :
if MessageDlg(´Você deseja realmente deletar este registro?´, 
               mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
  try  
    ADOQuery1.delete; 
  except
    on E: Exception do
      ShowMessage(´Ocorreu um erro e a mensagem é :´ + E.Message);
  end; 
end;


Espero ter ajudado...

T+


Responder

Gostei + 0

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

Aceitar