|
Inicio → WINDEV 25 → BLOQUEANDO A SEGUNDA ESTACAO NUM REGISTRO EM EDIÇÃO - BY PAULO VIANA |
BLOQUEANDO A SEGUNDA ESTACAO NUM REGISTRO EM EDIÇÃO - BY PAULO VIANA |
Iniciado por Boller, 19,mar. 2023 21:49 - 1 respuesta |
| |
| | | |
|
| |
Miembro registrado 4.521 mensajes |
|
Publicado el 19,marzo 2023 - 21:49 |
BLOQUEANDO A SEGUNDA ESTACAO NUM REGISTRO EM EDIÇÃO - BY PAULO VIANA
Bloqueio de registro concorrente entre dois ou mais usuarios
if edt_lock = "s" if cbox_write = False if not readseekfirst(tabela, chave, busca) return end
if hinfolock(tabela, nrecnum(tabela)) <> "" hreset(tabela) infowithtimeout(2s,"registro bloqueado por outro usuario-aguarde!") return end
glo_lock_salvar(mywindow..alias, tabela, hrecnum({tabela})) gbTemLock = true
else
if not hreadseekfirst(tabela, chave, busca) return end
if hinfolock(tabela, hrecnum(tabela)) = ""
// realiza o lock if not hlockrecnum(tabela, hrecnumcurrent, hlockwrite) return end
glo_lock_salvar(mywidow..alias, tabela, hrecnum({tabela}))
gbTemLock = true
else
//nao realiza o lock infowithtimeout(2s, "Registro bloqueado por um outro usuario - apenas consulta btn_salvar..state = grayed
end
else
if no readseekfirst(tabela, chave, busca) return end
end
filetoscreen()
BY PAULO VIANA

-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensaje modificado, 19,marzo 2023 - 21:57 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.521 mensajes |
|
Publicado el 20,marzo 2023 - 00:05 |
// Outro exemplo // // verifica se o registro está bloqueado por outro usuário FUNCTION is_record_locked(tabela, chave, busca) record_number = tabela.Find(chave, busca) IF record_number < 0 THEN RETURN False END RETURN tabela.InfoLock(record_number) <> "" END
// tenta bloquear o registro para escrita FUNCTION lock_record(tabela, chave, busca) record_number = tabela.Find(chave, busca) IF record_number < 0 THEN RETURN False END IF NOT tabela.Lock(record_number) THEN RETURN False END RETURN True END
// exemplo de uso IF edt_lock = "s" THEN IF cbox_write THEN IF is_record_locked(tabela, chave, busca) THEN InfoWithTimeout(2s,"registro bloqueado por outro usuário - aguarde!") ELSE IF lock_record(tabela, chave, busca) THEN gbTemLock = True glo_lock_salvar(mywindow.alias, tabela, hrecnum(tabela)) END END ELSE btn_salvar.state = grayed END ELSE IF NOT readseekfirst(tabela, chave, busca) THEN RETURN END FileToScreen() END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
|