Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 2 Próxima »

Abre uma tabela de dados na área de trabalho atual ou na primeira área de trabalho disponível.

Sintaxe

 

DBUSeArea( [<lNovaArea>] , [<cDriver>] , <cTabela> , <cAlias> , [<lCompartilhado>] , [<lSomenteLeitura>] )

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
lNovaAreaLógico

Caso verdadeiro, indica que a tabela deve ser aberta em uma nova workarea (Default=.F.)

NN

Caso o parâmetro seja .F. ou não especificado (NIL), a tabela será aberta na workarea atual, Caso já exista uma tabela aberta na WorkArea atual, a mesma é fechada.

cDriverCaractereInforma o Driver (RDD) a ser utilizada para a abertura da tabela. Caso não especificado (NIL), será usado o driver default de acesso a arquivos locais.NNVerifique a lista de drivers disponíveis no final deste documento.
cTabelaCaractereNome da tabela a ser aberta. Caso o driver utilizado acesse tabelas no sistema de arquivos, deve ser informado um path no servidor de aplicação. Não é possível abrir tabelas de dados no SmartClient.SNQuando utilizada a RDD "TOPCONN", caso seja desejada a abertura de uma Query no SGDB, devemos passar como 3o parâmetro o retorno da função TcGenQry(), onde informamos a string contendo a Query como terceiro parâmetro da função TcGenQry()
cAliasCaractereNome dado ao ALIAS desta tabela, para ser referenciado no programa Advpl.SNEm um mesmo processo, duas tabelas não podem ser abertas sob o mesmo ALIAS. Porém, a mesma tabela pode ser aberta mais de uma vez com um ALIAS diferente.
lCompartilhadoLógicoCaso verdadeiro, indica que a tabela deve ser aberta em modo compartilhado, isto é, outros processos também poderão abrir esta tabela.NNUma tabela aberta em modo exclusivo por um processo não consegue ser aberta em modo algum por nenhum outro processo, A abertura em modo compartilhado pode falhar caso exista algum processo com a tabela aberta em modo exclusivo
lSomenteLeituraLógicoCaso verdadeiro, indica que este alias será usado apenas para leitura de dados. Caso contrário, estas operações serão permitidas.NNUm alias aberto em modo de leitura não permite operações de inclusão, alteração ou exclusão de dados.

Retorno

NomeTipoDescriçãoObservações
NILU

Esta função sempre retorna NIL

Para verificar se a abertura da tabela foi bem sucedida, após a chamada da DBUseArea(), verifique o retorno da função NetErr(). Caso ocorra uma falha de acesso física á tabela, como por exemplo tentar abrir uma tabela que não existe, o driver utilizado na abertura retornará uma ocorrência de erro para a aplicação.

Observações

 

Exemplos

Exemplo 

user function exemplo()
Local aStru := {}
aadd(aStru,{"CPOC1","C",08,0})
aadd(aStru,{"CPOC2","C",40,0})
cAqrTrab := CriaTrab(aStru,.T.)
// Abre o arquivo de trabalho em uma nova Workarea, em modo exclusivo
DbUseArea( .T. , NIL , cArqTrab , "TRB" , .F. , .F. )
return

No exemplo acima, podemos substituir a chamda direta da função DBUseArea() para utilizar o comando USE. Com isso o programa fica mais legível. Como o comando USE trata os parâmetros de Driver, Nome da tabela e alias como "literais", a utilização de variáveis para estes parâmetros deve ser informada ao comando entre parênteses. Vide exemplo abaixo:

USE (cArqTrab) ALIAS TRB EXCLUSIVE NEW 

 

Veja também

DbCloseArea, DBCreate, TCGenQry

  • Sem rótulos