#SQLGetDescField
# 功能简介
返回单个描述符字段的值。
# 函数声明
SQLRETURN SQLGetDescField(
SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLSMALLINT FieldIdentifier,
SQLPOINTER ValuePtr,
SQLINTEGER BufferLength,
SQLINTEGER * StringLengthPtr);
# 参数说明
参数名 | 说明 |
---|---|
DescriptorHandle (IN) | 描述符句柄。 |
RecNumber (IN) | 指示应用程序从中查找信息的描述符记录。 |
FieldIdentifier (IN) | 指示要返回其值的描述符的字段。 |
ValuePtr (OUT) | 指向要在其中返回描述符信息的缓冲区的指针。 |
BufferLength (IN) | 如果 FieldIdentifier 是 ODBC 定义的字段,并且 ValuePtr 指向字符串或二进制缓冲区,则此参数应为 *ValuePtr 的长度。 |
StringLengthPtr (OUT) | 指向缓冲区的指针,该缓冲区将返回总字节数所需的字节数。 |
FieldIdentifier参数的支持情况:
不在列表中的参数不支持,同时已做拦截处理。
ARD
字段属性 | FieldIdentifier | 支持情况 | 说明 |
---|---|---|---|
header | SQL_DESC_ALLOC_TYPE | 支持 | 目前都为SQL_DESC_ALLOC_AUTO |
header | SQL_DESC_ARRAY_SIZE | 支持 | 等价于SQLSetStmtAttr的SQL_ATTR_ROW_ARRAY_SIZE |
header | SQL_DESC_BIND_TYPE | 支持 | 仅支持SQL_BIND_BY_COLUMN |
header | SQL_DESC_COUNT | 支持 | |
record | SQL_DESC_CONCISE_TYPE | 支持 | |
record | SQL_DESC_DATA_PTR | 支持 | |
record | SQL_DESC_DATETIME_INTERVAL_CODE | 支持 | 返回值根据C Type不同 switch (bindCType) { case SQL_C_TYPE_DATE: *value = SQL_CODE_DATE; break; case SQL_C_TYPE_TIME: *value = SQL_CODE_TIME; break; case SQL_C_TYPE_TIMESTAMP: *value = SQL_CODE_TIMESTAMP; break; case SQL_C_INTERVAL_DAY_TO_SECOND: *value = SQL_CODE_DAY_TO_SECOND; break; case SQL_C_INTERVAL_YEAR_TO_MONTH: *value = SQL_CODE_YEAR_TO_MONTH; break; default: *value = 0; break; } |
record | SQL_DESC_INDICATOR_PTR | 支持 | |
record | SQL_DESC_NUM_PREC_RADIX | 支持 | 一直返回10 |
record | SQL_DESC_OCTET_LENGTH | 支持 | |
record | SQL_DESC_PRECISION | 支持 | |
record | SQL_DESC_SCALE | 支持 | |
record | SQL_DESC_TYPE | 支持 | 返回值根据C Type不同 switch (bindCType) { case SQL_C_TYPE_DATE: case SQL_C_TYPE_TIME: case SQL_C_TYPE_TIMESTAMP: *value = SQL_DATETIME; break; case SQL_C_INTERVAL_DAY_TO_SECOND: case SQL_C_INTERVAL_YEAR_TO_MONTH: *value = SQL_INTERVAL; break; default: *value = bindCType; break; } |
APD
字段属性 | FieldIdentifier | 支持情况 | 值说明 |
---|---|---|---|
header | SQL_DESC_ALLOC_TYPE | 支持 | 目前都为SQL_DESC_ALLOC_AUTO |
header | SQL_DESC_ARRAY_SIZE | 支持 | 等价于SQLSetStmtAttr的SQL_ATTR_PARAMSET_SIZE |
header | SQL_DESC_BIND_TYPE | 支持 | 仅支持SQL_BIND_BY_COLUMN |
header | SQL_DESC_COUNT | 支持 | |
record | SQL_DESC_CONCISE_TYPE | 支持 | |
record | SQL_DESC_DATA_PTR | 支持 | |
record | SQL_DESC_DATETIME_INTERVAL_CODE | 支持 | 返回值根据C Type不同 switch (bindCType) { case SQL_C_TYPE_DATE: *value = SQL_CODE_DATE; break; case SQL_C_TYPE_TIME: *value = SQL_CODE_TIME; break; case SQL_C_TYPE_TIMESTAMP: *value = SQL_CODE_TIMESTAMP; break; case SQL_C_INTERVAL_DAY_TO_SECOND: *value = SQL_CODE_DAY_TO_SECOND; break; case SQL_C_INTERVAL_YEAR_TO_MONTH: *value = SQL_CODE_YEAR_TO_MONTH; break; default: *value = 0; break; } |
record | SQL_DESC_INDICATOR_PTR | 支持 | |
record | SQL_DESC_NUM_PREC_RADIX | 支持 | 一直返回10 |
record | SQL_DESC_OCTET_LENGTH | 支持 | |
record | SQL_DESC_PRECISION | 支持 | |
record | SQL_DESC_SCALE | 支持 | |
record | SQL_DESC_TYPE | 支持 | 返回值根据C Type不同 switch (bindCType) { case SQL_C_TYPE_DATE: case SQL_C_TYPE_TIME: case SQL_C_TYPE_TIMESTAMP: *value = SQL_DATETIME; break; case SQL_C_INTERVAL_DAY_TO_SECOND: case SQL_C_INTERVAL_YEAR_TO_MONTH: *value = SQL_INTERVAL; break; default: *value = bindCType; break; } |
IRD
字段属性 | FieldIdentifier | 支持情况 | 值说明 |
---|---|---|---|
header | SQL_DESC_ALLOC_TYPE | 支持 | 目前都为SQL_DESC_ALLOC_AUTO |
header | SQL_DESC_COUNT | 支持 | |
header | SQL_DESC_ROWS_PROCESSED_PTR | 支持 | 等价于SQLSetStmtAttr的SQL_ATTR_ROWS_FETCHED_PTR |
record | SQL_DESC_AUTO_UNIQUE_VALUE SQL_DESC_BASE_COLUMN_NAME SQL_DESC_BASE_TABLE_NAME SQL_DESC_CASE_SENSITIVE SQL_DESC_CATALOG_NAME SQL_DESC_CONCISE_TYPE SQL_DESC_DISPLAY_SIZE SQL_DESC_FIXED_PREC_SCALE SQL_DESC_LABEL SQL_DESC_LENGTH SQL_DESC_LITERAL_PREFIX SQL_DESC_LITERAL_SUFFIX SQL_DESC_LOCAL_TYPE_NAME SQL_DESC_NAME SQL_DESC_NULLABLE SQL_DESC_NUM_PREC_RADIX SQL_DESC_OCTET_LENGTH SQL_DESC_PRECISION SQL_DESC_SCALE SQL_DESC_SCHEMA_NAME SQL_DESC_SEARCHABLE SQL_DESC_TABLE_NAME SQL_DESC_TYPE SQL_DESC_TYPE_NAME SQL_DESC_UNNAMED SQL_DESC_UNSIGNED SQL_DESC_UPDATABLE | 参见SQLColAttribute的字段支持情况 | 等价于SQLColAttribute中的对应字段属性 |
IPD
字段属性 | FieldIdentifier | 支持情况 | 值说明 |
---|---|---|---|
header | SQL_DESC_ALLOC_TYPE | 支持 | 目前都为SQL_DESC_ALLOC_AUTO |
header | SQL_DESC_COUNT | 支持 | |
record | SQL_DESC_CONCISE_TYPE | 支持 | 当该字段未设置时,返回SLQ_UNKNOWN_TYPE,当该字段已设置,返回对应已设置的sqlType |
record | SQL_DESC_PARAMETER_TYPE | 支持 | |
record | SQL_DESC_PRECISION | 不支持 | |
record | SQL_DESC_SCALE | 不支持 | |
record | SQL_DESC_TYPE | 支持 | 返回值根据sqlType不同 switch (sqlType) { case SQL_TYPE_DATE: case SQL_TYPE_TIME: case SQL_TYPE_TIMESTAMP: *value = SQL_DATETIME; break; case SQL_INTERVAL_DAY_TO_SECOND: case SQL_INTERVAL_YEAR_TO_MONTH: *value = SQL_INTERVAL; break; default: *value = sqlType; break; } |