Retorna um array com a lista de registros bloqueados na tabela atual pelo processo corrente.

Sintaxe

DBRLockList()

Retorno

Nome

Tipo

Descrição

aRet

vetor

Retorna uma lista com os números dos registros bloqueados na tabela corrente.

Observações

  • A lista não contém valores repetidos e não é ordenada. A ordem de retorno será a ordem de bloqueio.
  • Para retornar valores válidos, a tabela deve estar aberta no modo compartilhado.
  • Caso não haja tabela aberta, o programa será encerrado com ocorrência de erro recuperável "Work area not in use".
  • Caso a tabela tenha sido aberta, mas no modo exclusivo, o retorno será um array com o índice zero ({ 0 }).
  • Caso a tabela tenha sido aberta no modo compartilhado, mas não existam registros bloqueados, o retorno será um array vazio ({}).

Exemplos

O exemplo abaixo utiliza a RDD "TOPCONN", mas a função pode ser utilizada com qualquer uma das RDDs válidas.

user function test()
  Local nHandle := TCLink( "MSSQL/DSN1", "127.0.0.1", 7890 )
  Local cTable := "MYTABLE"
  Local cRDD := "TOPCONN"
  
  // Abre a tabela em modo exclusivo
  DBUseArea( .T., cRDD, cTable, (cTable), .F., .F. )
  
  varinfo( "ret", DBRLockList() ) // Retorna: { 0 }
  
  DBCloseArea()
  
  // Abre a tabela em modo compartilhado
  DBUseArea( .F., cRDD, cTable, (cTable), .T., .F. )
  
  varinfo( "ret", DBRLockList() ) // Retorna: {}
  
  DBGoTop()
  
  DBRLock()       // Bloqueia o primeiro registro
  DBRLock( 110 )  // Bloqueia o registro de número 110
  DBRLock( 100 )  // Bloqueia o registro de número 100
  
  varinfo( "ret", DBRLockList() ) // Retorna: { 1, 110, 100 }
  
  DBRLock( 110 )  // Bloqueia o registro de número 110
  DBRLock(   1 )  // Bloqueia o primeiro registro
  
  varinfo( "ret", DBRLockList() ) // Retorna: { 1, 110, 100 }
  
  // Fecha a tabela
  DBCloseArea()
  
  // Desconecta do SGBD
  TCUnlink( nHandle )
return