ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Atualizar registros da linha do DBGrid antes de editar

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
SroKeven
Novato
Novato


Registrado: Sexta-Feira, 18 de Janeiro de 2019
Mensagens: 2

MensagemEnviada: Qui Ago 08, 2019 11:06 am    Assunto: Atualizar registros da linha do DBGrid antes de editar Responder com Citação

Olá, estou tentando sem sucesso fazer com que os dados de um DBGrid tenha um Refresh de forma eficiente antes de poder editar eles.
Eu tenho uma lista com dados de um pedido de venda, mas ela pode ser acessada de outro terminal. So que se o outro terminar entrar nessa venda e cancelar ela alguns campos e status mudam de valor tipo STATUS_VENDA = CANCELADO, so que no terminal que estou usando os dados ainda estão como uma venda valida, e caso eu tente editar essa venda eu consigo cancelar pois a verificação de que a venda ja esta cancelada so é chamada caso eu dê um refresh na query, seja com o clique do botão Atualizar ou abrindo e fechando a query, agora vem o que preciso.
Queria saber se tem como atualizar apenas o registro que preciso editar sem que a query inteira carregue todos os registros de novo, pois preciso que seja mais eficiente, o tempo para abrir essa query ta muito grnade, ja fiz o seguinte:
No lugar de verificar o valor do campo da query, eu ja verifiquei usando um metodo a parte, indo consultar direto no banco pra ter certeza que aqueles dados estão atualizados - Problema, pois são muitos campos para verificar e a consulta causava lentidão.
Gravei o numero do registro numa variavel e atualizei toda a query e passei o valor da variavel de novo pra posicionar o cursor da grid - Tbm causa lentidão excessiva.
Tentei ate usar o RefreasRecord(False) mas deu erro "[FireDAC][DApt]-400. Fetch command fetched [0] instead of [1] record. Possible reasons: update table does not have PK or row identifier, record has been changed/deleted by another user", e usar o RefreshRecord() simplesmente o registro que abre é o anterior e quando volto pra grid o registro que queria abrir sumiu, so volta quando eu atualizo manualmente no clique do botão.
Estou usando FDQuery e DBGrid.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB