APPEND FROM
 Importa registros a partir de um arquivo (.dbf) ou ASCII
------------------------------------------------------------------------------

 Sintaxe

     APPEND FROM <xcArquivo>
        [FIELDS <idLista Campos>]
        [<abrangência>] [WHILE <lCondiçao>] [FOR <lCondiçao>]
        [SDF | DELIMITED [WITH BLANK | <xcDelimitador>]]

 Argumentos

     FROM <xcArquivo> especifica o nome do arquivo fonte.  <xcArquivo>
     pode ser especificado como um literal ou expressao caractere entre
     parênteses.  Se a opçao tipo nao estiver presente, (.dbf) será o
     assumido e nao necessitaremos de extensao.  Se SDF ou DELIMITED é
     especificado, a extensao de arquivo é assumida como sendo (.txt) a
     menos que outra seja informada.

     FIELDS <idLista Campos> especifica a lista de campos que serao
     copiados de <xcArquivo>.  O assumido é todos os campos.

     <abrangência> é a porçao do arquivo fonte que será usada no APPEND
     FROM.  NEXT <n> APPENDa os primeiros <n> registros.  RECORD <n> APPENDa
     somente o registro número <n> a partir de <xcArquivo>.  O assumido é
     ALL (todos) os registros em <xcArquivo>.

     WHILE <lCondiçao> especifica o conjunto de registros que obedecem à
     condiçao a partir do primeiro registro do arquivo fonte até que a
     condiçao seja falsa.

     FOR <lCondiçao> especifica o conjunto condicional de registros para
     APPEND FROM dentro da abrangência dada.

     SDF identifica um arquivo System Data Format ASCII.  Cada registro
     é de tamanho fixo terminando com um carriage return/line feed. A marca
     de fim de arquivo é Ctrl-Z (1A hex).

     DELIMITED identifica um arquivo texto ASCII, onde os campos sao
     separados por vírgulas e os campos caractere sao limitados por aspas
     duplas (o delimitador assumido).  Note que delimitadores nao sao
     necessários e o Clipper corretamente APPENDa campos caractere nao
     limitados.  Campos e registros sao terminados com um carriage return e
     line feed.  A marca de fim de arquivo é Ctrl-Z (1A hex).

     DELIMITED WITH BLANK identifica um arquivo texto ASCII, onde campos
     sao separados por um espaço e campos caractere nao sao separados por
     delimitadores.

     DELIMITED WITH <xcDelimitador> identifica um arquivo texto
     delimitado, onde campos caractere sao delimitados com o delimitador
     especificado.  <xcDelimitador> pode ser especificado como um caractere
     literal ou entre parênteses.

     -----------------------------------------------------------------------
     . Aviso

     Caso a cláusula DELIMITED WITH seja especificada em um COPY TO ou
     APPEND FROM, ela deve ser a última cláusula especificada.
     -----------------------------------------------------------------------

 Descriçao

     APPEND FROM adiciona registros ao arquivo corrente a partir de um
     arquivo texto ASCII ou outro arquivo de dados.  Somente campos com os
     mesmos nomes e tipos sao APPENDados.  Campos com mesmo nome no arquivo
     fonte e em <xcArquivo> devem ser do mesmo tipo.  Caso nao o sejam, um
     erro em tempo de execuçao ocorre quando o APPEND FROM for invocado.

     No ambiente de rede, APPEND FROM nao requer que o arquivo corrente seja
     aberto com USE EXCLUSIVE ou travado com FLOCK() para ser executado.  A
     medida em que cada registro é adicionado, o Clipper automaticamente
     arbitra se é necessária a contençao para o novo registro.

     Quando APPEND FROM é invocado, o Clipper abre <xcArquivo> compartilhado
     e só para leitura.  Se o acesso é negado, APPEND FROM termina com um
     erro em tempo de execuçao.  Veja no capítulo de programaçao em rede no
     livro Programando e Utilitários maiores informaçoes.

 Notas

       Registros marcados: Registros marcados para eliminaçao
        (delete) em <xcArquivo> sao APPENDados e marcados no arquivo
        corrente.  Se DELETED está ON, entretanto, nenhum dos registros
        marcados em <xcArquivo> é APPENDado.

       Campos com tamanhos conflitantes: Caso um campo no
        arquivo corrente for caractere e maior que os dados em <xcArquivo>,
        o Clipper ajusta os dados em <xcArquivo> com brancos.  Se um campo
        caractere no arquivo corrente é menor, o dado é truncado em
        <xcArquivo>.  Se o dado no arquivo corrente é numérico e o dado
        vindo de <xcArquivo> tem mais dígitos, ocorre um erro em tempo de
        execuçao.

 Exemplos

       O exemplo seguinte demonstra um APPEND FROM usando a lista de
        campos e uma condiçao

        USE Sales NEW
        APPEND FROM BranchFile FIELDS Branch, Salesman, Amount;
           FOR Branch = 100

       Este exemplo mostra o uso de uma <abrangência> para importar
        um registro de outro arquivo:

        APPEND RECORD 5 FROM Temp

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

See Also: COPY TO