import.css=/download/attachments/6062824/tecnologia.css |
Bloqueia um registro do alias de uma tabela para receber atualizações de valores de campos.
DBRLock( [ nRec ] ) |
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
nRec | numérico | Indica o número do registro que será bloqueado. |
Nome | Tipo | Descrição |
---|---|---|
lRet | lógico | Retorna verdadeiro (.T.), se o registro for bloqueado com sucesso; caso contrário, falso (.F.). |
|
O exemplo abaixo utiliza a RDD "TOPCONN", mas a função pode ser utilizada com qualquer uma das RDDs válidas.
user function test1() Local nHandle := TCLink() Local cTable := "MYTABLE" Local cRDD := "TOPCONN" Local lRet := .F. // Abre a tabela em modo exclusivo DBUseArea( .T., cRDD, cTable, (cTable), .F., .F. ) DBGoTop() lRet := DBRLock() // Tenta bloquear o registro de número 1 conout( lRet ) // Exibe: .T. DBCloseArea() // Abre a tabela em modo compartilhado DBUseArea( .T., cRDD, cTable, (cTable), .T., .F. ) DBGoTo( 100 ) lRet := DBRLock() // Bloqueia o registro de número 100 conout( lRet ) // Exibe: .T. lRet := DBRLock( 110 ) // Bloqueia o registro de número 110 conout( lRet ) // Exibe: .T. // Fecha a tabela DBCloseArea() // Desconecta do SGBD TCUnlink( nHandle ) return |
O exemplo abaixo espera ser possível fazer o bloqueio de um registro, altera e depois desbloqueia.
user function test2() Local nHandle := TCLink() Local cTable := "MYTABLE" Local cRDD := "TOPCONN" Local lRet := .F. // Abre a tabela em modo compartilhado DBUseArea( .T., cRDD, cTable, (cTable), .T., .F. ) DBGoTo( 100 ) // Espera o bloqueio ser possível while !DBRLock() sleep( 1000 ) enddo // Altera o conteúdo do registro (cTable)->MYFIELD := "ABCDE" // Desbloqueia o registro DBRUnlock( 100 ) // Fecha a tabela DBCloseArea() // Desconecta do SGBD TCUnlink( nHandle ) return |