Try Exception nao Funciona!
Estou usando banco de dados firebird 2.0 delphi 7 ibexpert e componentes paleta interbase.
A exception nao esta funcionando, esta aparecendo o erro gerado pelo delphi.
Project raised exception class EibInterbasError with message 'Attenpt to store duplicate value (visible to active transactions) in unique "ID_NOMECOMPLETO" Process Stoped.'
else
...
...
if Button = NbPost then //botao salvar
begin
//menus
MainMenuSair.Enabled:=true; //MainMenuSair desabilitado
MainMenuPesquisa.Enabled:=true; //MainMenuConsulta desabilitado
//PopupMenuSair.Enabled:=false; //PopupMenuSair desabilitado
//PopupMenuConsulta.Enabled:=false; //PopupMenuConsulta desabilitado
//verifica campo em branco
//e notifica usuario
if dbeditUF.Text = '' then
begin
messagebeep(16);
messagebox(FormCadastro.Handle,'Realize a pesquisa pelo "Cep",'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
end
else
if dbeditCIDADE.Text = '' then
begin
messagebeep(16);
messagebox(FormCadastro.Handle,'Realize a pesquisa pelo "Cep",'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
end
else
if dbeditBAIRRO.Text = '' then
begin
messagebeep(16);
messagebox(FormCadastro.Handle,'Realize a pesquisa pelo "Cep",'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
end
else
if DBCBselecCLASSE.Text = '' then
begin
messagebeep(16);
messagebox(FormCadastro.Handle,'Selecione a "Classe" do registro,'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
end
else
if DBEditNOMECOMPLETO.Text = '' then
begin
messagebeep(16);
messagebox(FormCadastro.Handle,'Preencha o campo "Nome Completo",'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
end
else
if (Length (dbEditcep.Text) < 8) or (Length (dbEditcep.Text) > 8) then
begin //se digito contiver - de 8 digitos ou + de 8 digitos
messagebeep(16);
messagebox(FormCadastro.Handle,'Preencha o campo "Cep" corretamente!'#13'Formato: 00.000-000. Digite'#13'somente números.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
dbeditCep.SetFocus;
end
else
if Length (dbEditTelRes.Text) < 14 then
begin //se digito contiver - de 14 digitos
messagebeep(16);
messagebox(FormCadastro.Handle,'Preencha o campo "Telefone Residencial" corretamente!'#13'Formato: (00)0000-0000.'#13'Digite somente números.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
dbeditTelRes.Clear;
dbeditTelRes.SetFocus;
end
else
if Length (dbEditTelCel.Text) < 14 then
begin //se digito contiver - de 14 digitos
messagebeep(16);
messagebox(FormCadastro.Handle,'Preencha o campo "Telefone Celular" corretamente!'#13'Formato: (00)0000-0000.'#13'Digite somente números.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
dbeditTelCel.Clear;
dbeditTelCel.SetFocus;
end
else
if Length (dbEditTelCom.Text) < 14 then
begin //se digito contiver - de 14 digitos
messagebeep(16);
messagebox(FormCadastro.Handle,'Preencha o campo "Telefone Comercial" corretamente!'#13'Formato: (00)0000-0000.'#13'Digite somente números.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
abort;
dbeditTelCom.Clear;
dbeditTelCom.SetFocus;
end
else
if messagebox(FormCadastro.Handle,'Deseja Salvar'#13'o registro?','AgenTel - Salvar',mb_yesno+MB_ICONQUESTION)= idno then
begin
try
DTM.IBTABcadastro.Cancel;
messagebeep(16);
messagebox(FormCadastro.Handle,'O registro foi'#13'cancelado com sucesso!!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
Abort;
except //acrescentar clausula Ib no uses
on E: EIbInterbaseError do
begin
messagebeep(16);
messagebox(FormCadastro.Handle,'O registro que esta sendo inserido ja esta cadastrado no Banco de Dados!'#13'Altere o conteudo do campo "NomeCompleto" ou Cancele esta insercao.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
Abort;
end;
end;
end
else
begin
messagebeep(16);
messagebox(FormCadastro.Handle,'O registro foi'#13'salvo com sucesso!!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
end;
end
else
...
...
Aguardo ajuda, muito obrigado.
Discussão (1)
Carregando comentários...