48 lines
1.7 KiB
C
48 lines
1.7 KiB
C
|
//============== DAE: OS/2 Database Access Engine ===================
|
||
|
//============== fdb.h: Field Descriptor Block ===================
|
||
|
|
||
|
// Flags for field descriptor
|
||
|
#define ffieldNotNull (1<<0) // NULL values not allowed
|
||
|
#define ffieldDeleted (1<<1) // Fixed field has been deleted
|
||
|
#define ffieldVersion (1<<2) // Version field
|
||
|
#define ffieldAutoInc (1<<3) // Auto increment field
|
||
|
#define ffieldMultivalue (1<<4) // Multi-valued column
|
||
|
|
||
|
#ifdef ANGEL
|
||
|
#pragma pack(4)
|
||
|
#endif
|
||
|
|
||
|
// Entry in field descriptor tables found in an FDB.
|
||
|
typedef struct _field
|
||
|
{
|
||
|
JET_COLTYP coltyp; // column data type
|
||
|
LANGID langid; // language of field
|
||
|
WORD wCountry; // country of language
|
||
|
USHORT cp; // code page of language
|
||
|
ULONG cbMaxLen; // maximum length
|
||
|
BYTE ffield; // various flags
|
||
|
CHAR szFieldName[JET_cbNameMost + 1]; // name of field
|
||
|
} FIELD;
|
||
|
|
||
|
// Field Descriptor Block: information about all fields of a file.
|
||
|
struct _fdb
|
||
|
{
|
||
|
FID fidVersion; // fid of version field
|
||
|
FID fidAutoInc; // fid of auto increment field
|
||
|
FID fidFixedLast; // Highest fixed field id in use
|
||
|
FID fidVarLast; // Highest variable field id in use
|
||
|
FID fidTaggedLast; // Highest tagged field id in use
|
||
|
LINE lineDefaultRecord; // default record
|
||
|
struct _field *pfieldFixed; // if FCB of data: pointers to
|
||
|
struct _field *pfieldVar; // beginnings fixed, variable, and
|
||
|
struct _field *pfieldTagged; // tagged field tables
|
||
|
WORD *pibFixedOffsets; // pointer to beginning of table
|
||
|
// of fixed field offsets
|
||
|
struct _field rgfield[]; // FIELD structures hang off the end
|
||
|
// WORD rgibFixedOffsets[]; // followed by the offset table
|
||
|
};
|
||
|
|
||
|
#ifdef ANGEL
|
||
|
#pragma pack()
|
||
|
#endif
|