RecLock

Trava um registro para manipulação

Exemplo da Rotina:

RecLock([Alias], [.T. = inclusão, .F. = manipulação])

Exemplo 1- Incluindo um registro em uma tabela customizada:

RecLock("ZZZ", .T.)
	ZZZ->ZZZ_FILIAL := FWxFilial('ZZZ')
	ZZZ->ZZZ_CAMP01 := "AAA"
	ZZZ->ZZZ_CAMP02 := "BBB"
	ZZZ->ZZZ_CAMP03 := "CCC"
	ZZZ->ZZZ_CAMP04 := "DDD"
ZZZ->(MsUnlock())

Exemplo 2- Alterando um registro via DbSeek:

DbSelectArea('SB1')
SB1->(DbSetOrder(1)) // Filial + Código

//Se conseguir posicionar no produto
If SB1->(DbSeek(FWxFilial('SB1') + "COD_AAA"))
	RecLock('SB1', .F.)
		SB1->B1_X_CAMPO := "AAA"
	SB1->(MsUnlock())
EndIf

Exemplo 3- Alterando um registro via DbGoTo:

//Pegando o RecNo desejado
nRecno := 41574

//Posicionando no registro
DbSelectArea('SB1')
SB1->(DbGoTo(nRecno))

//Alterando o registro
RecLock('SB1', .F.)
	SB1->B1_X_CAMPO := "CCC"
SB1->(MsUnlock())

Exemplo 4- Excluindo um registro de uma tabela customizada:

RecLock("ZZZ", .F.)
	DbDelete()
ZZZ->(MsUnlock())

Exemplo 5- Verificando se pode ser feita uma manipulação:

If RecLock("ZZZ", .F.)
	//comandos
	ZZZ->(MsUnlock())
	
Else
	MsgStop("Não foi possível travar o registro para manipulação!", "Atenção")
EndIf

Observações:

  • Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
  • Se tiver sugestões de rotinas, pode entrar em contato;

Referências: