Bloquear registro em tabela no banco de dados

Boa noite a todos! Eu tenho uma dúvida que seria a seguinte:

  1. Tenho uma tabela de clientes.
  2. O usuário thyago, vai acessar o cliente joão para fazer algumas alterações no registro.
  3. Ao mesmo tempo, o usuário maria, vai tentar alterar o cliente joão.

O que eu preciso aqui é que o thyago e a maria não possam alterar o cliente joão ao mesmo tempo. Então queria bloquear. O primeiro que entrou, edita. O segundo é bloqueado. Pode até visualizar. Mas não pode alterar nada. Alguém teria alguma dica?

Em tempo, eu encontrei isso mas não tenho ideia de como implementar isso no scriptcase:

https://pt.stackoverflow.com/questions/73667/lock-de-registro#:~:text=Este%20processo%20é%20conhecido%20como%20Deadlock.&text=Um%20bloqueio%20compartilhado%20(S)%20permite,atualizar%20ou%20excluir%20uma%20linha.

Desde já, agradeço a ajuda de todos.

Você precisa adicionar a noção de semáforo ao seu aplicativo.

Você precisa de uma mesa que contenha as informações da reserva : (SemáforoName, Registro, Hora, User)

Você também precisa de duas funções que você pode salvar nas bibliotecas internas, set_semaphore(SemáforoName, Registro) e reset_semaphore()

Ex. quando você quiser acessar um registro, você primeiro chama set_semaphore(“Cliente”,345)
a função irá verificar a tabela para ver se o SemáforoName “Customer” e o Registro 345 estão disponíveis.

Se não estiver disponível, você mostra um aviso de que o registro está sendo usado atualmente pelo SemaphoreUser e retorna False. Você pode colocar o usuário no modo somente leitura.

Se o Semáforo for mais antigo que digamos 15 minutos, você o remove para disponibilizá-lo.

Se disponível você adiciona um novo Semáforo na tabela e retorna True. Este usuário terá acesso total de leitura e gravação.

Antes de sair do seu aplicativo, chame reset_semaphore() para remover todos os semáforos que você reservou para este usuário. Você também pode chamar reset_semaphore() do evento onExecute do menu para ter certeza de que a tabela de semáforos para este usuário está o mais limpa possível.