DB-Library functions use the following type definitions. Use these when defining C program variables, particularly those in dbbind, dbaltbind, dbconvert, and dbdata.
typedef char DBCHAR; // Char and text typedef unsigned char DBBINARY; // Binary and image typedef unsigned char DBTINYINT; // 1-byte tinyint typedef short DBSMALLINT; // 2-byte smallint typedef unsigned short DBUSMALLINT; // Unsigned 2-byte integer typedef long DBINT; // 4-byte int typedef float DBFLT4; // 4-byte real typedef double DBFLT8; // 8-byte float typedef unsigned char DBBIT; // Bit typedef unsigned char DBBOOL; // Boolean typedef long DBMONEY4; // 4-byte smallmoney typedef struct dbmoney // 8-byte money { DBINT mnyhigh; ULONG mnylow; } DBMONEY; typedef struct dbdatetime4 // 4-byte smalldatetime { USHORT numdays; // Days since Jan 1, 1900 USHORT nummins; // Minutes since midnight } DBDATETIM4; typedef struct dbdatetime // 8-byte datetime { DBINT dtdays; // Days since Jan 1, 1900 ULONG dttime; // 300ths of a second since midnight } DBDATETIME; #define MAXNUMERICLEN 16 typedef struct dbnumeric // Numeric (and decimal) { BYTE precision; // Precision BYTE scale; // Scale BYTE sign; // 1 = Positive, 0 = Negative BYTE val[MAXNUMERICLEN]; // Padded little endian value } DBNUMERIC; typedef DBNUMERIC DBDECIMAL; // Decimal #define DBMAXCHAR 256 typedef struct dbvarychar // Pascal-type string { DBSMALLINT len; // Character count DBCHAR str[DBMAXCHAR]; // Non-terminated string } DBVARYCHAR; typedef struct dbvarybin // Pascal-type byte array { DBSMALLINT len; // Byte count BYTE array[DBMAXCHAR]; // Non-terminated array } DBVARYBIN;