windows-nt/Source/XPSP1/NT/net/jet500/jet/dae/inc/fdb.h
2020-09-26 16:20:57 +08:00

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