MDAC 2.5 SDK - ODBC Programmer's Reference
Chapter 13: Descriptors
Descriptors contain header and record fields that completely describe columns or parameters.
A descriptor contains a single copy of the following header fields. Changing a header field affects all columns or parameters.
SQL_DESC_ALLOC_TYPE | SQL_DESC_BIND_TYPE |
SQL_DESC_ARRAY_SIZE | SQL_DESC_COUNT |
SQL_DESC_ARRAY_STATUS_PTR | SQL_DESC_ROWS_PROCESSED_PTR |
SQL_DESC_BIND_OFFSET_PTR |
A descriptor contains zero or more descriptor records. Each record describes a column or parameter, depending on the type of descriptor. When a new column or parameter is bound, a new record is added to the descriptor. When a column or parameter is unbound, a record is removed from the descriptor. Each record contains a single copy of the following fields:
SQL_DESC_AUTO_UNIQUE_VALUE | SQL_DESC_LOCAL_TYPE_NAME |
SQL_DESC_BASE_COLUMN_NAME | SQL_DESC_NAME |
SQL_DESC_BASE_TABLE_NAME | SQL_DESC_NULLABLE |
SQL_DESC_CASE_SENSITIVE | SQL_DESC_OCTET_LENGTH |
SQL_DESC_CATALOG_NAME | SQL_DESC_OCTET_LENGTH_PTR |
SQL_DESC_CONCISE_TYPE | SQL_DESC_PARAMETER_TYPE |
SQL_DESC_DATA_PTR | SQL_DESC_PRECISION |
SQL_DESC_DATETIME_INTERVAL_CODE | SQL_DESC_SCALE |
SQL_DESC_DATETIME_INTERVAL_PRECISION | SQL_DESC_SCHEMA_NAME |
SQL_DESC_DISPLAY_SIZE | SQL_DESC_SEARCHABLE |
SQL_DESC_FIXED_PREC_SCALE | SQL_DESC_TABLE_NAME |
SQL_DESC_INDICATOR_PTR | SQL_DESC_TYPE |
SQL_DESC_LABEL | SQL_DESC_TYPE_NAME |
SQL_DESC_LENGTH | SQL_DESC_UNNAMED |
SQL_DESC_LITERAL_PREFIX | SQL_DESC_UNSIGNED |
SQL_DESC_LITERAL_SUFFIX | SQL_DESC_UPDATABLE |
Many statement attributes correspond to the header field of a descriptor. Setting these attributes through a call to SQLSetStmtAttr and setting the corresponding descriptor header field by calling SQLSetDescField have the same effect. The same is true for SQLGetStmtAttr and SQLGetDescField, both of which retrieve the same information. Calling the statement functions instead of the descriptor functions has the advantage that a descriptor handle does not have to be retrieved.
The following header fields can be set by setting statement attributes:
SQL_DESC_ARRAY_SIZE | SQL_DESC_BIND_TYPE |
SQL_DESC_ARRAY_STATUS_PTR | SQL_DESC_ROWS_PROCESSED_PTR |
SQL_DESC_BIND_OFFSET_PTR |