Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fkrul

Tratamento de Exceção / Zeos

Recommended Posts

Gente, estou utilizando o Zeos para conectar com Mysql, alguém sabe como fazer o tratamento de exceção, por exemplo quando tento inserir um registro, e dá um erro de chave primária!!, em tempo, tipo passo a passo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até onde sei, todo tratamento de exceção é feito usando os comandos try except.

 

try
  <bloco de comandos que deverão ser executados>
except
  <comandos a serem executados em caso de erro em alguma instrução no bloco de comandos entre o try e o except>
end; //Final de bloco de comandos protegidos

Aqui eu costumo usar essa sintaxe para capturar e mostrar erros.

 

try
	cmdComando.Execute;
  except
	on E : Exception do 
	  begin
	  Mensagem('Não foi possível realizar o procedimento no Banco de Dados.' + #13#10 + E.Message);
	  GravaLog(sSQL);
	  GravaLog(E.Message);
	end;
  end;

Onde:

 

on E : Exception = Ativado quando ocorrem exceções na execução da sql (violação de chave por exemplo)

E.Message = Exceção gerada ao tentar executar o sql.

cmdComando = TADOCommand

GravaLog = Rotina desenvolvida para gravar logs.

sSQL = Instrução sql (update, insert, delete) passada por parâmetro para a função.

 

Note que só copiei aqui o trecho referente ao uso do try except, para lhe dar uma idéia de como usar.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abaixo minha função, mas continua dando errado, quando executo, tentando inserir um registro, para dar erro de primary key, aparece uma mensagem

Project Pboleto.exe raised exception class EZQLexception with message 'SQL Error: Duplicate entry 'teste' for key 1'. Process stopped. Use Step or Run to Continue. E ai trava tudo!

 

 

procedure TFReceita.btnGravarClick(Sender: TObject);

begin

if ( status = 'incluir' ) then

begin

DMPrincipal.ZQReceita.Active := FALSE;

DMPrincipal.ZQReceita.SQL.Clear;

DMPrincipal.ZQReceita.SQL.Add('INSERT INTO receita(id_receita,de_receita,fg_ativo) VALUES(''' + txtCodigo.Text + ''',''' + txtDescricao.Text + ''',1)');

try

DMPrincipal.ZQReceita.ExecSQL;

txtCodigo.Text := '';

txtDescricao.Text := '';

except

on E : Exception do

begin

ShowMessage(E.Message);

end;

end;

end;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que entendi que você postou acima, você está debugando seu projeto com (F9) ... assim a exceção não será gerada do jeito que você espera ... você deve compilá-lo gerando o executável e executar o sistema ... se não foi isso que aconteceu, me desculpe, mas pelo erro é o que está parecendo ...

 

qq coisa é só postar ...

 

abraço !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.