Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
|
Pagetitle | ||
---|---|---|
|
...
...
...
|
Retira
...
o
...
bloqueio
...
de
...
todos
...
os
...
registro
...
e
...
arquivos
...
de
...
todas
...
as
...
tabelas
...
abertas em uma área de trabalho.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
DBUnlockAll()
DBUnlockAll ( ) --> Nil |
Observações
- Essa função é utilizada para liberar todos os registros bloqueados e é equivalente a executar a função DBUnlock
...
- para todas as tabelas da área de trabalho.
- Se não for possível fazer a atualização do registro que está sendo desbloqueado, o programa será encerrado com ocorrência de erro recuperável "Update error: (DBUnlockAll)".
- Não é possível chamar a função DBUnlockAll para um alias caso o driver de abertura deste alias esteja com uma transação ativa. Caso o programa AdvPL erroneamente chame a função DBUnlockAll dentro de um bloco transacionado, o programa será interrompido com a ocorrência de erro recuperável "DBUnlockAll cannot be called in a transaction".
- Se houver algum problema no desbloqueio dos registros da tabela, será apresentada no log de console do AppServer a mensagem "Warning - DBUnlockAll - Unlock error".
- Se a tabela está aberta em modo exclusivo, a função não realizará desbloqueios na tabela.
- Caso um programa faça mais de uma conexão com o mesmo SGBD, uma conexão consegue liberar todos os bloqueios da área de trabalho que teve bloqueios feitos por outra conexão. Isso só é possível para conexões realizadas pela mesma thread.
- A função DBCloseArea remove todos os bloqueios realizados.
Exemplos
Os exemplos abaixo utilizam a RDD "TOPCONN", mas a função pode ser utilizada com qualquer uma das RDDs válidas.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
user function test1()
Local nHandle := TCLink( "MSSQL/DSN1", "127.0.0.1", 7890 )
Local cTable1 := "MYTABLE1"
Local cTable2 := "MYTABLE2"
Local cRDD := "TOPCONN"
Local lRet := .F.
// Abre a tabela 1 em modo compartilhado, criando uma nova área de trabalho
//Este exemplo, apresenta como liberar todos os registros bloqueados da tabela corrente.DBUseArea( .T. ,"dbfcdxads", "\dadosadv\sa1990.dbf","SSS",, cRDD, cTable1, (cTable1), .T., .F. ) lRet := DBRLock( 100 ) // Bloqueia o registro de número 100 conout( lRet ) // Exibe: .T. // Abre a tabela 2 em modo compartilhado na área de trabalho atual DBUseArea( .F., cRDD, cTable2, (cTable2), .T., .F. ) lRet := DBRLock( 110 ) // Bloqueia o registro de número 110 conout( lRet ) // Exibe: .T..DBUnlockAll() Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
// Desbloqueia todos os registros bloqueados na área de trabalho
DBUnlockAll()
// Reabre a tabela 1 em modo compartilhado
DBUseArea( .F., cRDD, cTable1, (cTable1), .T., .F. )
// Lista os bloqueios na tabela 1
varinfo( "list1", DBRLockList() ) // Vai exibir: {}
// Reabre a tabela 2 em modo compartilhado
DBUseArea( .F., cRDD, cTable2, (cTable2), .T., .F. )
// Lista os bloqueios na tabela 2
varinfo( "list2", DBRLockList() ) // Vai exibir: {}
// Fecha a área de trabalho
DBCloseArea()
// Desconecta do SGBD
TCUnlink( nHandle )
return
|
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas