CDaoTableDef::CreateField

void CreateField( LPCTSTR lpszName, short nType, long lSize, long lAttributes = 0 );
throw( CDaoException, CMemoryException );

void CreateField( CDaoFieldInfo& fieldinfo );
throw( CDaoException, CMemoryException );

Parameters

lpszName

A pointer to a string expression specifying the name of this field.

nType

A value indicating the data type of the field. The setting can be one of these values:

Type Size (bytes) Description
dbBoolean 1 byte BOOL
dbByte 1 BYTE
dbInteger 2 int
dbLong 4 long
dbCurrency 8 Currency (COleCurrency)
dbSingle 4 float
dbDouble 8 double
dbDate 8 Date/Time (COleDateTime)
dbText 1 – 255 Text (CString)
dbLongBinary 0 Long Binary (OLE Object), CLongBinary or CByteArray
dbMemo 0 Memo (CString)

lSize

A value that indicates the maximum size, in bytes, of a field that contains text, or the fixed size of a field that contains text or numeric values. The lSize parameter is ignored for all but text fields.

lAttributes

A value corresponding to characteristics of the field and that can be combined using a bitwise-OR.

Constant Description
dbFixedField The field size is fixed (default for Numeric fields).
dbVariableField The field size is variable (Text fields only).
dbAutoIncrField The field value for new records is automatically incremented to a unique long integer that cannot be changed. Only supported for Microsoft Jet database tables.
dbUpdatableField The field value can be changed.
dbDescending The field is sorted in descending (Z – A or 100 – 0) order (applies only to a Field object in a Fields collection of an Index object). If you omit this constant, the field is sorted in ascending (A – Z or 0 – 100) order (default).

fieldinfo

A reference to a CDaoFieldInfo structure.

Remarks

Call this member function to add a field to the table. A DAOField (OLE) object is created and appended to the Fields collection of the DAOTableDef (OLE) object. Besides its use for examining object properties, you can also use CDaoFieldInfo to construct an input parameter for creating new fields in a tabledef. The first version of CreateField is simpler to use, but if you want finer control, you can use the second version of CreateField, which takes a CDaoFieldInfo parameter.

If you use the version of CreateField that takes a CDaoFieldInfo parameter, you must carefully set each of the following members of the CDaoFieldInfo structure:

The remaining members of CDaoFieldInfo should be set to 0, FALSE, or an empty string, as appropriate for the member, or a CDaoException may occur.

For more information on tabledefs, see the articles DAO Tabledef and DAO Tabledef: Using Tabledefs in Visual C++ Programmer's Guide. For related information, see the topic "CreateField Method" in DAO Help.

CDaoTableDef OverviewClass MembersHierarchy Chart

See Also   CDaoTableDef::DeleteField, CDaoTableDef::CreateIndex, CDaoTableDef::DeleteIndex