/*
 * $Id: dbdelim.txt,v 1.1 2002/01/22 22:23:33 lculik Exp $
 */

/*
 * Las siguientes partes son derechos adquiridos de sus autores individuales.
 * www - http://www.harbour-project.org
 *
 * Copyright 2001-2002 David G. Holm <dholm@jsd-llc.com> 
 *   Documentación en Inglés de: __dbDelim()
 *
 * Copyright 2001 Alejandro de Gárate <alex_degarate@hotmail.com>
 *   Documentación en Español de: __dbDelim()
 *
 * Vea doc/license.txt por los términos de la licencia.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __dbDelim()
 *  $CATEGORY$
 *      Conversión
 *  $ONELINER$
 *      Copia el contenido de una base de datos a un archivo de texto 
 *      delimitado ó agrega el contenido de un archivo de texto 
 *      delimitado a una base de datos.
 *  $SYNTAX$
 *      __dbDelim( <lExporta>, <xcArchivo>, [<xcDelim>], [<aCampos>],
 *      [<bFor>], [<bWhile>], [<nNext>], [<nRegistro>], <lResto>  ) --> NIL
 *  $ARGUMENTS$
 *      Si <lExporta> es puesto a .T. copia registros A un archivo 
 *      delimitado.
 *      Si <lExporta> es .F. agrega registros DESDE un archivo delimitado.
 *
 *      <xcArchivo> es el nombre del archivo de texto del cual se va a 
 *      copiar ó al que se va agregar datos.
 *      Si no es especificada una extensión. ".txt" es usada por defecto.
 *      
 *      <xcDelim> Cualquiera de los caracteres a usar como delimitadores 
 *      de campo (sólo el primer caracter es usado). ó "BLANK" (en mayúsculas
 *      ó minúsculas), el cual elimina los caracteres delimitadores de campo
 *      y establece el separador de campo a un solo espacio en lugar de una 
 *      coma.
 *      
 *      <aCampos> Un array con los nombres de los campos a los que se limita
 *      el proceso. Si no es especificado, ó si está vacío, entonces todos 
 *      los campos son procesados.
 *      
 *      <bFor> Un bloque de código opcional conteniendo una expresión FOR
 *      que reducirá el número de registros a ser procesados.
 *      
 *      <bWhile> Un bloque de código opcional conteniendo una expresión
 *      WHILE que reducirá el número de registros a ser procesados.
 *      
 *      <nNext> Si está presente, pero <nRegistro> no está presente, 
 *      especifica procesar este número de registros, empezando con el 
 *      registro actual. Un valor de cero significa no procesar registros.
 *      
 *      <nRegistro> Si está presente, especifica el único registro a 
 *      procesar un valor de cero significa no procesar ningún registro.
 *      Predomina sobre <nNext> y <lResto>.
 *      
 *      <lResto> Si <lExporta> es .T., y <lResto> es establecido en .T. y 
 *      no hay argumentos <nRegistro>, <nNext> ó <bWhile>, entonces 
 *      procesa todos los registros, desde el actual hasta el último.
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      __dbDelim() copia todo ó el contenido seleccionado, desde una tabla 
 *      de base de datos a un archivo de texto SDF ó, agrega todo ó el 
 *      contenido seleccionado desde un archivo de texto SDF a una tabla de 
 *      base de datos.
 *  $EXAMPLES$
 *      // Copia cuentas delinquentes dentro de un archivo de texto 
 *      // delimitado
 *      USE cuentas NEW
 *      COPY TO deudas DELIMITED FOR !EMPTY( cuentas->vencidas ) ;
 *      .AND. DATE() - cuentas->vencidas > 30
 *
 *      // Importa nuevos registros de clientes
 *      USE clientes NEW
 *      APPEND FROM clientes DELIMITED
 *  $TESTS$
 *      
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      Es intención que __dbDelim() sea totalmente compatible con la función
 *      de CA-Clipper del mismo nombre y es la implementación subyacente de 
 *      los comandos: APPEND FROM DELIMITED y COPY TO DELIMITED.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *
 *  $SEEALSO$
 *      __dbSDF(), APPEND FROM, COPY TO
 *  $END$
 */

