Field type | VARIANT type | Note |
GDB tables | ||
gdbFieldTypeString | VT_BSTR | Variable-length string of characters. Converting characters from or to Unicode is based on the current code page. |
gdbFieldTypeInteger | VT_I4 | Integer. The overflow error may occur while retrieving a value because a range of integers in GDB is wider than that of VT_I4. |
gdbFieldTypeDouble | VT_R8 | Float. Ranging from ±4.19?10–308 to ±1.67?10308. Mantissa precision: 15 decimal digits. |
gdbFieldTypeBoolean | VT_BOOL | Logical value. |
gdbFieldTypeDate | VT_DATE | Date. When setting a field value, the fractional part of float representation of a date (i.e., time) in the VT_DATE format is ignored. When retrieving a field value, the fractional part of float representation of a date (i.e., time) in the VT_DATE format equals 0. The error occurs when a date less than January 1, 100 is retrieved because a range of dates in GDB is wider than that of VT_DATE. |
gdbFieldTypeTime | VT_DATE | Time. When setting a field value, the integer part of float representation of a date (i.e., date) in the VT_DATE format is ignored. When retrieving a field value, the integer part of float representation of a date (i.e., date) in the VT_DATE format equals 0. A loss of accuracy of time representation is possible while retrieving or setting a value. |
gdbFieldTypeTimestamp | VT_DATE | Timestamp. A loss of accuracy of time representation is possible while setting or retrieving a value. The error occurs when a timestamp less than 1-Jan-100 is retrieved because a range of timestamps in GDB is wider than that of VT_DATE. |
gdbFieldTypeOLEObject | VT_BSTR | Embedded or linked OLE object. A string being returned or set represents an OLE object descriptor. Converting characters from or to Unicode is based on the current code page. |
empty value in a field | VT_NULL | |
External database tables | ||
gdbExtDBFieldTypeChar | VT_BSTR | String of characters. Converting characters from or to Unicode is based on the current code page. The string length in characters is determined by the Field::Precision property. |
gdbExtDBFieldTypeVarChar | VT_BSTR | String of characters. Converting characters from or to Unicode is based on the current code page. The maximum string length in characters is determined by the Field::Precision property. |
gdbExtDBFieldTypeLongVarChar | VT_BSTR | String of characters. Converting characters from or to Unicode is based on the current code page. If the full extraction is not set for BLOB fields while retrieving the field value by the Field::Value property, the value is truncated. The maximum length of retrieved characters is determined by the Recordset::MaxBLOBLength property. If the full extraction is set, the full value of BLOB field can be retrieved using the Field::PutTo method. If you want to set the value of BLOB field when the full extraction is on, use the Field::GetFrom method (it is impossible to use the Field::Value property in this case). |
gdbExtDBFieldTypeWChar | VT_BSTR | String of characters. Converting characters from or to Unicode is based on the current code page. The string length in characters is determined by the Field::Precision property. |
gdbExtDBFieldTypeWVarChar | VT_BSTR | String of characters. Converting characters from or to Unicode is based on the current code page. The maximum string length in characters is determined by the Field::Precision property. |
gdbExtDBFieldTypeWLongVarChar | VT_BSTR | String of characters. Converting characters from or to Unicode is based on the current code page. If the full extraction is not set for BLOB fields while retrieving the field value by the Field::Value property, the value is truncated. The maximum length of retrieved characters is determined by the Recordset::MaxBLOBLength property. If the full extraction is set, the full value of BLOB field can be retrieved using the Field::PutTo method. If you want to set the value of BLOB field when the full extraction is on, use the Field::GetFrom method (it is impossible to use the Field::Value property in this case). |
gdbExtDBFieldTypeDecimal | VT_BSTR | String – character representation of exact decimal number in the format '<integer part>.<fractional part>'. The total number of digits for the integer and fractional parts is determined by the Field::Precision property. The Field::Scale property returns the number of decimal digits to the right of the decimal point. |
gdbExtDBFieldTypeNumeric | VT_BSTR | String – character representation of exact decimal number in the format '<integer part>.<fractional part>'. The total number of digits for the integer and fractional parts is determined by the Field::Precision property. The Field::Scale property returns the number of decimal digits to the right of the decimal point. |
gdbExtDBFieldTypeBit | VT_BOOL | Logical value. |
gdbExtDBFieldTypeTinyInt | VT_I4 | Integer. The overflow may occur while setting a value because a range of VT_I4 is wider than that of gdbExtDBFieldTypeTinyInt. |
gdbExtDBFieldTypeSmallint | VT_I4 | Integer. The overflow may occur while setting a value because a range of VT_I4 is wider than that of gdbExtDBFieldTypeSmallint. |
gdbExtDBFieldTypeInteger | VT_I4 | Integer |
gdbExtDBFieldTypeBigInt | VT_BSTR | String – character representation of an integer. |
gdbExtDBFieldTypeReal | VT_R8 | Float. The overflow may occur while setting a value because a range of VT_R8 is wider than that of gdbExtDBFieldTypeReal. |
gdbExtDBFieldTypeFloat | VT_R8 | Float. Ranging from ±4.19?10–308 to ±1.67?10308. Mantissa precision: 15 decimal digits. |
gdbExtDBFieldTypeDouble | VT_R8 | Float. Ranging from ±4.19?10–308 to ±1.67?10308. Mantissa precision: 15 decimal digits. |
gdbExtDBFieldTypeBinary | SAFEARRAY with elements of type VT_UI1 | Array of bytes. The array length in bytes is determined by the Field::Precision property. |
gdbExtDBFieldTypeVarBinary | SAFEARRAY with elements of type VT_UI1 | The maximum array length in bytes is determined by the Field::Precision property. |
gdbExtDBFieldTypeLongVarBinary | SAFEARRAY with elements of type VT_UI1 | Array of bytes. If the full extraction is not set for BLOB fields while retrieving the field value by the Field::Value property, the value is truncated. The maximum length of retrieved characters is determined by the Recordset::MaxBLOBLength property. If the full extraction is set, the full value of BLOB field can be retrieved using the Field::PutTo method. If you want to set the value of BLOB field when the full extraction is on, use the Field::GetFrom method (it is impossible to use the Field::Value property in this case). |
gdbExtDBFieldTypeDate | VT_DATE | Data. The possible range depends on an ODBC data source. |
gdbExtDBFieldTypeTime | VT_DATE | Time. The possible range depends on an ODBC data source. |
gdbExtDBFieldTypeTimeStamp | VT_DATE | Timestamp. The possible range depends on an ODBC data source. |
empty value in a field | VT_NULL | |