Pessoal:

a) Estou estudando o DBExpress/ClientDataSet (com Delphi7) para substituir
o BDE 

b) Em um cadastro com ClientDataSet, gostaria que, quando o usuario
clicar no botao "gravar" de um DBNavigator, o registro imediatamente
fosse gravado.

c) Para isso, inclui o seguinte codigo, no evento AfterPost do ClientDataSet:


procedure TFormCadMatServicos.ClientDataSetTBMATSERVICOSAfterPost(DataSet: 
TDataSet);
begin
   try
      ClientDataSetTBMATSERVICOS.ApplyUpdates(0);
   except
           ShowMessage('Erro de gravacao');
   end;
end;


d) E' claro que eu pretendo interceptar o erro e mostrar uma mensagem
mais amigavel ao usuario.  No entanto,  se eu rodo o programa
de dentro do Delphi 7, o programa para e aparece a mensagem de erro
(por exemplo:  violacao de chave primaria), mas nao aparece a mensagem
acima ("Erro de gravacao")

e) Se eu rodo o programa de fora do Delphi, nenhuma mensagem de erro
aparece (se eu tento incluir um registro com chave que ja' existe, por exemplo).

f) Tentei colocar o codigo acima no "OnPostError" do ClientDataSet (como eu faco
com as TQuery do BDE), mas tambem ali nao funcionou.

Solicito a gentileza de me enviarem alguma dica para interceptar os erros
mais comuns em um ClientDataSet (chave duplicada, violacao de foreign key,
campos NOT NULL nao preenchidos, etc.)

Grato pela atencao de todos
Paulo


[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]
 
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