# DBCREATE()

Creates an empty database from a array.

Syntax

  DBCREATE( <cDatabase>, <aStruct>, [<cDriver>], [<lOpen>],
  [<cAlias>] ) --> NIL

Arguments

  <cDatabase> Name of database to be create
  <aStruct> Name of a multidimensional array that contains the database structure
  <cDriver> Name of the RDD
  <lOpenNew> 3-way toggle to Open the file in New or Current workarea:

NIL | The file is not opened.
True | It is opened in a New area.
False | It is opened in the current area.

  <cAlias> Name of database Alias

Returns

  DBCREATE() always returns NIL.

Description

  This function creates the database file specified as <cDatabase> from the multidimensional array <aStruct>.If no file extension is use with <cDatabase> the .DBF extension is assumed. The array specified in <aStruct> must follow a few guidelines when being built prior to a call to DBCREATE():
  - All subscripts values in the second dimension must be set to proper values
  - The fourth subscript value in the second dimension - which contains the decimal value-must he specified. even 1kw nonnumeric fields.
  - The second subscript value in the second dimension-which contains the field data type-must contain a proper value: C, D, L, M or N It is possible to use additional letters (or clarity (e.g., 'Numeric' for 'N'): however, the first letter of this array element must be a proper value.
  The DBCREATE( ) function does not use the decimal field to calculate the length of a character held longer than 256. Values up to the maximum length of a character field (which is 65,519 bytes) are stored directly in the database in the length attribute if that database was created via this function. However, a file containing fields longer than 256 bytes is not compatible with any interpreter.
  The <cDriver> parameter specifies the name of the Replaceable Database Driver to use to create the database. If it is not specified, then the Replaceable Database Driver in the current work area is used.
  The <lOpenNew> parameter specifies if the already created database is to be opened, and where. If NIL, the file is not opened. If True, it is opened in a New area, and if False it is opened in the current area (closing any file already occupying that area). The <cAlias> parameter specifies the alias name for the new opened database.

Examples

          function main()

          local nI, aStruct := { { "CHARACTER", "C", 25, 0 }, ;
                              { "NUMERIC",   "N",  8, 0 }, ;
                              { "DOUBLE",    "N",  8, 2 }, ;
                              { "DATE",      "D",  8, 0 }, ;
                              { "LOGICAL",   "L",  1, 0 }, ;
                              { "MEMO1",     "M", 10, 0 }, ;
                              { "MEMO2",     "M", 10, 0 } }

          REQUEST DBFCDX

          dbCreate( "testdbf", aStruct, "DBFCDX", .t., "MYALIAS" )

          RETURN NIL

Status

  Ready

Compliance

  This function is Not CA-Clipper compliant

Files

  Library is rdd Header is Dbstruct.ch

See Also

- AFIELDS()
- DBSTRUCT()