Pessoal,
 
Implementei uma função que jogo em todos os ReconcileError do DataSet.
Gostaria de saber se posso melhorá-la:
 
function Tdata.ReconciliaErro(Mensagem: EReconcileError; Evento:
TUpdateKind): TReconcileAction;
var sEvento: string;
begin
case Evento of
  ukModify: sEvento:='Erro na alteração do registro. '; //The update to the
record is a modification to the record's contents.
  ukInsert: sEvento:='Erro na inclusão do registro. ';  //The update is the
insertion of a new record.
  ukDelete: sEvento:='Erro na exclusão do registro. ';  //The update is the
deletion of a record.
end;
 
if Pos(UpperCase('violation of FOREIGN KEY constraint'),
UpperCase(Mensagem.Message)) > 0 then
   Application.MessageBox(Pchar(sEvento + 'Você não pode excluir este
registro, existem dados relacionados!'),'Erro', MB_OK+MB_ICONERROR)
else
   if Pos(UpperCase('attempt to store duplicate value (visible to active
transactions) in unique index'), UpperCase(Mensagem.Message)) > 0 then
      Application.MessageBox(Pchar(sEvento + 'Não foi possível incluir, este
registro já existe nesta tabela!'),'Erro', MB_OK+MB_ICONERROR)
   else
      if Pos(UpperCase('violation of PRIMARY or UNIQUE KEY'),
UpperCase(Mensagem.Message)) > 0 then
         Application.MessageBox(Pchar(sEvento + 'Não foi possível incluir,
este registro já existe nesta tabela!'),'Erro', MB_OK+MB_ICONERROR)
      else
         Application.MessageBox(PChar(sEvento + 'Erro: ' + Mensagem.Message
+ '!'),'Erro', MB_OK+MB_ICONERROR);
 
Result:= raCancel;
end;
 
 
Chamo ela da seguinte forma:
 
procedure Tdata.tbConfigReconcileError(DataSet: TCustomClientDataSet;
  E: EReconcileError; UpdateKind: TUpdateKind;
  var Action: TReconcileAction);
begin
Action:=data.ReconciliaErro(E, UpdateKind);
end;
 
Se puderem me ajudar... ou se quiseram usar a rotina para seu proveito ...
 
Atenciosamente,
 
Levi Ribeiro de Freitas
Programador de Computadores


[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a