Bloquear edição de campo quando alguem ja estiver editando

Boa noite,

Alguém sabe como travar a edição de um dado por outra pessoa quando ja estiver sendo editado?
Tipo um gerente está editando as informações de contato de um cliente, e ao mesmo tempo outro gerente acessa as mesmas informações para também alterar. Gostaria de que isso não fosse permitido.

Agradeço a todos.

teria que ter uma campos na tabela para marcar quem esta editando.

no evento onload

travar a tabela
ler registro
se campo estiver em branco
{
salvar registro com usuario que esta editando
commitar banco
flag=pode editar
}
caso contrario
{
flag = não pode editar
}
destravar a tabela

se flag <> pode editar
{
exibir mensagem " registro já esta sendo editado por outro utilizador " e desabilitar botoes de salvamento e deleção
}
caso contrario
{
habilitar botões.

}

no evento onbefore update

limpar campo antes de salvar.

Só um detalhe, colocando o bloqueio no OnLoad, o formulário deve ser aberto diretamente por link em uma consulta, não vai ser possível o usuário ficar navegando no formulário (anterior/próximo),
se não ele vai ficar ‘ativando’ a flag de bloqueio no registro mesmo que não esteja sendo editado, e se o gerente desistir da atualização o registro pode acabar ficar bloqueado também.

  • Mas é estranho 2 gerentes estarem atualizando o contato da mesma pessoa ao mesmo tempo, sendo que normalmente ‘o cliente’ contato não poderia estar tratando do assunto ao mesmo
    tempo com 2 gerentes, e mesmo se fosse os dados seriam os mesmos que eles vão preencher.

si o cara fechar o navegador o que acontece? :slight_smile:

Fica bloqueado… forever.

Ao navegar entre os registros a onload vai ser executada, e um procedimento para destravar o registro anterior deve ser executado.

se o gerente cancelar pelo navegador, o registro vai ficar travado e um supergerente teria que destravar esse registro.

o Sc peca nesse sentido, pois em outras ferramentas, ao salvar elas só salvam os campos que foram alterados, e executam um reread nos dados depois de travar o registro, para só então atualizar os dados, assim se garante trabalhar em multiusuário mantendo a integridade dos dados,

A minha sugestão foi proposital para fazer o solicitante do tópico pensar a respeito. Eu nunca dou o osso com a carne.

Mas eu tenho reserva de passagens em multipontos que usam esse recurso, mas a programação é toda na unha.

Estou criando um sistema de pré-inscrição para colônia de férias. E serão mais de um gerente acessando o sistema para validar os clientes, dependentes e as inscrições, bem como anexar boletos. Por isso a preocupação.

Obrigado a todos pelas dicas, estarei realizando os testes com os comandos passados e tentar resolver o problema do bloqueio. Pensei em criar um evento alertando ao gerente que ao tentar fechar o navegador, ele antes cancele a edição do registro.

Obrigado a todos