USE
 Abre um arquivo de dados (.dbf) e os arquivos a ele associados
------------------------------------------------------------------------------

 Sintaxe

     USE [<xcArquivo>
        [INDEX <xcLista de Indices>]
        [ALIAS <idAlias>] [EXCLUSIVE | SHARED]
        [NEW] [READONLY]]

 Argumentos

     <xcArquivos> é o nome do arquivo a ser aberto, o qual pode ser
     especificado literalmente ou como expressao caractere entre parênteses.

     INDEX <xcLista de Indices> especifica o(s) nome(s) de até 15
     índices a serem abertos na área corrente.  Cada índice pode ser
     especificado literalmente ou como expressao caractere entre parênteses,
     sendo que o primeiro índice da lista torna-se o índice de controle.
     Caso <xcIndice> tenha sido especificado como expressao e o valor
     retornado é espaços ou NIL, ele é ignorado.

     ALIAS <idAlias> é o nome a ser associado à área de trabalho quando
     o arquivo de dados é aberto.  Se esta cláusula nao é especificada, o
     alias assumido é o nome do arquivo.

     EXCLUSIVE abre o arquivo de dados para uso nao compartilhado num
     ambiente de rede.  O acesso de outros usuários é negado até que o
     arquivo seja fechado.

     SHARED abre o arquivo de dados para para uso compartilhado em
     rede.  Especificada esta cláusula, o programa nao leva em consideraçao
     o estado do SET EXCLUSIVE.

     NEW abre <xcArquivo> na próxima área disponível tornando-a
     corrente.  Se esta cláusula nao for especificada, <xcArquivo> é aberto
     na área corrente.

     READONLY abre <xcArquivo> com atributo de apenas leitura
     (read-only).  Isto permite abrir arquivos marcados read-only.  SE
     <xcArquivo> nao pode ser aberto desta forma, um erro em tempo de
     execuçao é gerado.  Se esta cláusula nao for especificada , <xcArquivo>
     é aberto para leitura e gravaçao (read-write).

     Se nao forem especificados argumentos, o arquivo aberto na área
     corrente é fechado

 Descriçao

     USE abre um arquivo de dados (.dbf), seu arquivo memo associado (.dbt),
     e opcionalmente índices associados(.ntx) na área corrente ou na próxima
     área disponível.  Em Clipper, existem 250 áreas com um máximo de 255
     arquivos abertos em DOS 3.3 ou superior.  Antes de abrir um arquivo,
     USE fecha o arquivo de dados e seus arquivos associados presentes na
     área corrente.  Quando um arquivo de dados é aberto, o ponteiro de
     registros é posicionado no primeiro registro lógico no arquivo (ou
     registro número 1 se nao houver índices especificados).

     Num ambiente de rede, arquivos de dados podem ser abertos EXCLUSIVE
     (exclusivo) ou SHARED (compartilhado).  EXCLUSIVE impossibilita o uso
     do arquivo por outros até que o mesmo seja fechado.  SHARED permite que
     outros USEm o arquivo de forma concorrente.  Se o arquivo corrente
     estiver SHARED, a responsabilidade sobre a integridade dos dados recai
     sobre o programa aplicativo.  Em Clipper, FLOCK() e RLOCK() sao os dois
     meios básicos de impedir o acesso a um arquivo ou registro.  Se o
     comando use é emitido e SHARED ou EXCLUSIVE nao sao especificados, o
     arquivo é aberto de acordo com o estado de SET EXCLUSIVE corrente.  Em
     Clipper 5.0, todos os comandos USE devem explicitar a forma de abertura
     ou seja EXCLUSIVE ou SHARED.  O modo implícito determinado por SET
     EXCLUSIVE foi incluso apenas para compatibilidade e nao deve ser
     utilizado.

     A abertura de um arquivo no ambiente de rede requer um certo grau de
     manipulaçao para ser bem sucedida.  Primeiro, tente abrir o arquivo sem
     especificar a lista de índices.  Entao, teste o sucesso da operaçao
     usando NETERR().  Caso NETERR() retorne falso (.F.), a operaçao de
     abertura teve êxito e você pode usar SET INDEX para estabelecer a lista
     de índices.  Uma abertura nao terá sucesso no ambiente de rede caso
     outro usuário tenha o arquivo em USE EXCLUSIVE.  Leia o capítulo
     Programando em Rede no livro Programando e Utilitários para maiores
     informaçoes.

     Arquivos índice podem ser abertos com USE ou SET INDEX.  O primeiro
     índice na lista de índices torna-se o índice de controle e define a
     ordenaçao corrente.  O índice de controle pode ser mudado sem a
     necessidade de fechar-se os arquivos, por meio do comando SET ORDER.

     Para fechar um arquivo de dados e seus arquivos associados na área
     corrente, especifique CLOSE ou USE sem argumentos.  Para fechar
     arquivos em todas as áreas use CLOSE DATABASES.  Para fechar índices na
     área corrente sem fechar o arquivo de dados, use CLOSE INDEX ou SET
     INDEX TO sem argumentos.

     Leia a seçao Sistema de Arquivo de Dados no capítulo Conceitos Básicos
     para maiores informaçoes sobre a escolha de arquivos de dados.

 Notas

       Estabelecer o máximo de arquivos: O número de arquivos
        disponível para uma aplicaçao Clipper é controlado por uma
        combinaçao do comando FILES no CONFIG.SYS, e do parâmetro F na
        variável ambiental CLIPPER.  O parâmetro F especifica o número
        máximo de arquivos a serem abertos ao mesmo tempo num aplicativo em
        Clipper.  O Clipper determina o número de arquivos a serem abertos
        utilizando o menor entre os dois parâmetros.  Lembre-se de que o DOS
        usa cinco arquivos.   Assim, o valor de FILES deve ser ao menos 5
        maior que o valor presente no parâmetro F da variável CLIPPER e
        preferencialmente um número ímpar.

        O limite de arquivos é controlado pelo sistema operacional.  Com
        versoes menores que a 3.3, o valor máximo a ser aberto é de vinte
        arquivos.  Em DOS 3.3 ou superior o valor máximo é 255 arquivos.
        Nao esqueça de considerar os 5 arquivos do DOS.

       Abrir o mesmo arquivo em mais de uma área:  Embora seja
        perfeitamente factível,  esta prática é fortemente desencorajada.

 Exemplos

       O exemplo seguinte mostra como abrir um arquivo compartilhado
        e seus índices num ambiente de rede.  Caso NETERR() seja falso
        (.F.), significa que o USE teve sucesso:

        USE Accounts SHARED NEW
        IF !NETERR()
           SET INDEX TO AcctNames, AcctZip
        ELSE
           ? "Abertura nao executada"
           BREAK
        ENDIF

       Este exemplo mostra como abrir diversos índices com os
        índices especificados como expressoes.  Note que um vetor de nomes
        de índices é criado como vetor de constantes:

        xcDatabase = "myDbf"
        xcIndex = {"myNtx1", "myNtx2", "myNtx3"}
        USE (xcDatabase) INDEX (xcIndex[1]), (xcIndex[2]), (xcIndex[3])

 Arquivos:  Biblioteca CLIPPER.LIB.
 To download this example - click here.

See Also: CLOSE SELECT SET INDEX NETERR() USED()