Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
flexsystems Aprendiz


Registrado: Segunda-Feira, 2 de Abril de 2007 Mensagens: 234 Localização: Caxias do Sul
|
Enviada: Sex Out 30, 2009 12:10 pm Assunto: RefreshRecord |
|
|
Olá a todos!
Estou desenvolvendo um novo produto e reescrevendo "todo" o código mas com isso vem inovações (ou complicações) !!!!!
O caso é que criei uma classe chamada TDtm_FlexDadosEntidade e que irá encapsular todo evento referente a manutenção de dados em tabelas, como já faço na versão anterior do meu aplicativo.
O problema é que agora é que modifiquei o código descrito abaixo, acrescentando o procedimento RefreshRecord só para atualizar o registro que estou modificando, mas na verdade não sei o que é esse procedimento, mas gostaria de saber como funciona para que serve e o que é necessário para que ele funcione.
Pergunto: Para que serve e como devo utilizar, visto que ao utilizar ele apresenta a seguinte mensagem: Refresh not found or changed by another user
Obrigado à todos.
Código: | procedure TDtm_FlexDadosEntidade.Confirmar(const pMaxErros: Integer; const pAbrirTransacao: Boolean);
var
lNroErros: Smallint;
begin
if Aberto and ExistemAlteracoes then
begin
if pAbrirTransacao then
AbrirTransacao;
try
repeat
FRegistrosCorrigidos := 0;
lNroErros := Cds_Principal.ApplyUpdates(pMaxErros) - FRegistrosCorrigidos;
until (FRegistrosCorrigidos = 0) or ((pMaxErros <1> pMaxErros));
if ((pMaxErros <1> pMaxErros)) then
begin
Cds_Principal.CancelUpdates;
if TTexto.StringEmBranco(FMensagemReconcile) then
FlexControle.FlexMensagem.Erro('Erro ao atualizar Banco de Dados.', teErro)
else
FlexControle.FlexMensagem.Erro(FMensagemReconcile, teAbortar);
end;
if pAbrirTransacao then
CommitarTransacao;
if Cds_Principal.UpdateStatus = usUnModified then
Cds_Principal.RefreshRecord;
except
if pAbrirTransacao then
RollbackTransacao;
raise;
end;
end;
end; |
_________________ Edvilson V. G. Chaves
- Pesquise bem antes de postar.
- Qdo postar pense muito bem onde seria o melhor resultado.
e-mail: suporte@flexvendasweb.com.br
Site: www.flexvendasweb.com.br
Editado pela última vez por flexsystems em Sáb Nov 14, 2009 8:55 am, num total de 1 vez |
|
Voltar ao Topo |
|
 |
alexbandeira Mestre


Registrado: Terça-Feira, 27 de Julho de 2004 Mensagens: 812 Localização: Paulista - PE
|
Enviada: Sex Out 30, 2009 2:40 pm Assunto: |
|
|
Cara gostei do teu código, heheheh.
Bom, em relação ao refhesh, ele funciona como um commit. serve para atualizar dispositivos de armazenamentos de dados, normalmente é usado em sistemas em rede para atualizar os terminais com as informações mais recentes do servidor.
Como a msg retorna é que o sist. ñ encontrou motivos para realizar o refresh.
é bom vc rever o código. |
|
Voltar ao Topo |
|
 |
flexsystems Aprendiz


Registrado: Segunda-Feira, 2 de Abril de 2007 Mensagens: 234 Localização: Caxias do Sul
|
Enviada: Sáb Nov 14, 2009 8:59 am Assunto: |
|
|
Olá desculpe a demora em responder a sua resposta...
mas ae que está o problema,
estou desenvolvendo todas as tabelas do sistema com conceito de surrogate key,método onde a Primary key da tabela é informada via trigger no momento de inserir no banco de dados, com isso com toda certeza afirmo a você que existe sim uma alteração no registro e este deveria ser alterado. _________________ Edvilson V. G. Chaves
- Pesquise bem antes de postar.
- Qdo postar pense muito bem onde seria o melhor resultado.
e-mail: suporte@flexvendasweb.com.br
Site: www.flexvendasweb.com.br |
|
Voltar ao Topo |
|
 |
flexsystems Aprendiz


Registrado: Segunda-Feira, 2 de Abril de 2007 Mensagens: 234 Localização: Caxias do Sul
|
Enviada: Sáb Nov 14, 2009 10:10 am Assunto: |
|
|
flexsystems escreveu: | Olá desculpe a demora em responder a sua resposta...
mas ae que está o problema,
estou desenvolvendo todas as tabelas do sistema com conceito de surrogate key,método onde a Primary key da tabela é informada via trigger no momento de inserir no banco de dados, com isso com toda certeza afirmo a você que existe sim uma alteração no registro e este deveria ser alterado. |
Exemplo:
Tabela de Condições de Pagamento:
ID -> CODIGO -> DESCRICAO
====================
1 -> 30D -> 30 DIAS
2 -> AVI -> A VISTA
3 -> 60D -> 60 DIAS
Quando aplicado o comando insert:
-1 -> [VAZIO] -> [VAZIO]
Após Post do ClientDataSet:
-1 -> 90D -> 90 DIAS
Após o ApplyUpdates/Commit no Banco:
4 -> 90D -> 90 DIAS
Agora viria o RefreshRecord para atualizar o registro, monstrando no ID 4 e não -1, mas ocorre o erro. _________________ Edvilson V. G. Chaves
- Pesquise bem antes de postar.
- Qdo postar pense muito bem onde seria o melhor resultado.
e-mail: suporte@flexvendasweb.com.br
Site: www.flexvendasweb.com.br |
|
Voltar ao Topo |
|
 |
[VAZA] Novato

Registrado: Terça-Feira, 30 de Agosto de 2011 Mensagens: 5
|
Enviada: Ter Ago 30, 2011 2:18 pm Assunto: |
|
|
Amigo..conseguiu resolver o problema? estou tendo o mesmo erro |
|
Voltar ao Topo |
|
 |
|