Tente Isso:

var
   SavePlace: TBookmark;
begin
    SavePlace := GetBookmark;      <- salva a posição do cursor
    Refresh;                                        <- Refresh na tabela
    GotoBookmark(SavePlace);        <- retorna à posição antes do refresh.
end;

 adapte ao seu código.
 
-------Mensagem original-------
 
De: Levi Ribeiro de Freitas
Data: 08/15/05 11:02:13
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] ENC: Erro no DataSet do DbExpress - Ajudem por Favor
 

Por favor me ajudem:

Estou precisando tirar uma dúvida e gostaria da ajuda dos companheiros:

Quando salvo um registro usando dbexpress e firebird 1.5 uso a seguinte
função que criei no evento AfterPost:

function Tdata.DBCommit(DataSet: TSimpleDataSet): Boolean;
var
TransDesc : TTransactionDesc;
begin
if DataSet.ChangeCount > 0 then
   begin
   DataSet.ApplyUpdates(-1);
   TransDesc.TransactionID := Random(300000) + 123456;
   TransDesc.IsolationLevel := xilREADCOMMITTED;
   DataSet.Connection.StartTransaction(TransDesc);
    try
     DataSet.Connection.Commit(TransDesc);
     Result:=True;
    except
     DataSet.Connection.Rollback(TransDesc);
     Result:=False;
     //Application.MessageBox(PChar('Erro ao atualizar dados da tabela ' +
DataSet.DataSet.Name + ' !'),'Erro', MB_OK+MB_ICONERROR);
    end;
   end;
end;

Acontece o seguinte: 
Quando salvo o registro e logo em seguida tento alterar e salvar novamente
ele me dá uma mensagem de erro dizendo que o registro foi alterado por outro
usuário.
Para resolver este problema eu dou um refresh no dataset e altero sem
problemas. A questão é que quando dou refresh no dataset ele volta ao
primeiro registro confundindo o usuário.

O que devo fazer?


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 Termos do Serviço do
Yahoo!. 


 

[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