Tratar Erros com Caché

13/02/2004

0

SQL

Oi gente,

Utilizo uma rotina simples, mas bem funcional, para tratar erros do Banco de Dados. O meu problema é que minha base de dados era Paradox, agora estou usando caché e essa procedure não funciona mais.
Acho que o único problema é o tipo de drive a que a rotina faz referência, mas ainda não consegui adapta-lá para usar com o projeto que utiliza caché como banco de dados.
Segue a rotina que eu utilizo. Se puderem me ajudar, favor indicar outro código ou reescrever este:

procedure TDM.TrataErro(DataSet: TDataSet, E: EDatabaseError; var Ation: TDataAction);
var
i: byte;
begin
//verifica tipo de erro

case (E as EDBEngineError).Errors[0].ErrorCode of
124://Foreing Key
if DataSet.State in [dsInsert, dsEdit] then
msg:=´Este registro não pode ser salvo,´+
´pois viola as regras de integridade do sistema!´
else
msg:=´Este registro não pode ser excluído pois existem´+
´dados dependentes!´;
119://Key Violation
msg:=´Registro já existe!´;
118://Value Required for Field
begin
for i:=0 to dataset.fieldcount-1 do
if trim(copy(e.message,30,length(e.message)-29))
=dataset.fields[i].fieldname then
msg:=´Valor inválido para o´+
´campo´+dataset.fieldsi].displaylabel;
end
else //outros erros
msg:=´Erro não Previsto. Contate Suporte!´;
//Exibe a msg para o usuário
if msg<>´ ´ then
MessageBox(0,PChar(msg), ´Custos´,mb_OK+mb_IconStop);
Action:=daAbort;
end;


Michelle

Michelle

Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar