CREATE FROM
 Crea un nuevo fichero .dbf desde un fichero de estructura extendido
------------------------------------------------------------------------------
 Sintaxis

     CREATE <xcBasedeDatos> FROM <xcBasedeDatosExtendida> [NEW]
        [ALIAS <xcAlias>] [VIA <cControlador>]

 Argumentos

     <xcBasedeDatos> es el nombre del nuevo fichero de base de datos que
     se va a crear a partir del fichero de estructura extendido.

     <xcBasedeDatosExtendida> es el nombre de un fichero de estructura
     extendido que se va a utilizar como definición de estructura para el
     nuevo fichero de base de datos.

     Ambos argumentos pueden especificarse como nombres de fichero de base
     de datos en forma literal o como expresiones de caracteres encerradas
     entre paréntesis. Si no se especifica una extensión, la extensión por
     defecto será .dbf.

     NEW abre <xcBasedeDatos> en la siguiente área de trabajo
     disponible, que se convierte así en el área de trabajo actual. Si no se
     especifica esta cláusula, <xcBasedeDatos> se abre en el área de trabajo
     actual.

     ALIAS <xcAlias> es el nombre que se asocia con el área de trabajo
     al abrir <xcBasedeDatos>. El nombre de alias puede especificarse como
     nombre en forma literal o como expresión de caracteres encerrada entre
     paréntesis. Un <xcAlias> válido puede ser cualquier identificador
     correcto (es decir, debe comenzar con un carácter alfabético y puede
     contener caracteres numéricos o alfabéticos y el subrayado). Dentro de
     una misma aplicación, CA-Clipper no aceptará alias duplicados. Si no se
     especifica esta cláusula, el alias por defecto será el nombre de
     fichero de base de datos.

     VIA <cControlador> especifica el Controlador de Bases de Datos
     Sustituible (RDD) que se utiliza para procesar el área de trabajo
     actual. <cControlador> es el nombre del RDD especificado como expresión
     de carácter. Si <cControlador> se especifica como valor en forma
     literal, deberá ir entre comillas.

 Descripción

     CREATE FROM crea un nuevo fichero de base de datos con las definiciones
     de campo extraídas del contenido de un fichero de estructura extendida.
     Para calificarlo como fichero de estructura extendida, un fichero de
     base de datos debe contener los cuatro campos siguientes:

     Estructura de un Fichero Extendido
     ------------------------------------------------------------------------
     Campo      Nombre          Tipo         Longitud     Decimales
     ------------------------------------------------------------------------
     1          Field_name      Carácter     10
     2          Field_type      Carácter     1
     3          Field_len       Numérico     3            0
     4          Field_dec       Numérico     4            0
     ------------------------------------------------------------------------

     <xcBasedeDatos> se abre automáticamente en el área de trabajo actual
     una vez creado.

 Notas

     ■ Diccionarios de datos: En las aplicaciones de diccionarios de
        datos, puede tener cualquier cantidad de campos distintos dentro del
        fichero de estructura extendido para describir más características
        del campo. Este sería el caso si desea tener campos para describir
        atributos de campo tales como su descripción, identificador clave,
        etiqueta, color, patrón de formato y una expresión de validación
        para la cláusula VALID. Cuando se ejecuta CREATE FROM, CA-Clipper
        crea el nuevo fichero de base de datos solamente desde los campos
        requeridos, ignorando todos los demás campos de la estructura
        extendida. Además, CA-Clipper no distingue el orden de los campos
        requeridos.

     ■ Longitudes de campos de caracteres mayores de 255: Existe un
        método para crear un campo de caracteres con una longitud mayor de
        255 posiciones:

        - Especificar la longitud de campo con los campos Field_len y
           Field_dec, de acuerdo con la siguiente formulación:

           FIELD->Field_len := <nLongitudCampo> % 256
           FIELD->Field_dec := INT(<nLongitudCampo> / 256)

 Ejemplos

       Este ejemplo es un procedimiento que simula una utilidad
        CREATE interactiva:

        CrearBasedeDatos("NuevFich")
        RETURN

        FUNCTION CrearBasedeDatos( cNuevoDbf )
           CREATE ExtTmp          // Crea una estructura extendida vacía
           USE ExtTmp
           lMas := .T.
           DO WHILE lMas          // Introduce nuevas definiciones de campo
              APPEND BLANK
              CLEAR
              @ 5, 0 SAY "Nombre... : " GET Field_name
              @ 6, 0 SAY "Tipo..... : " GET Field_type
              @ 7, 0 SAY "Longitud. : " GET Field_len
              @ 8, 0 SAY "Decimales.: " GET Field_dec
              READ
              lMas := (!EMPTY(Field_name))
           ENDDO

           // Elimina todos los registros en blanco
           DELETE ALL FOR EMPTY(Field_name)
           PACK
           CLOSE

           // Crea un nuevo fichero de base de datos
           CREATE (cNuevoDbf) FROM ExtTmp
           ERASE ExtTmp.dbf
           RETURN NIL

      El ejemplo siguiente crea una nueva definición en un fichero
        de estructura extendido para un campo de caracteres de 4000
        caracteres de longitud:

        APPEND BLANK
        REPLACE Field_name WITH "Notas",;
           Field_type WITH "C",;
           Field_len WITH 4000 % 256,;
           Field_dec WITH INT(4000 / 256)

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: COPY STRUCTURE COPY STRU EXTE CREATE