//============== 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