#SQLGetDescField

# 函数用途

返回单个描述符字段的值。

# ODBC函数原型

SQLRETURN SQLGetDescField(  
     SQLHDESC        DescriptorHandle,  
     SQLSMALLINT     RecNumber,  
     SQLSMALLINT     FieldIdentifier,  
     SQLPOINTER      ValuePtr,  
     SQLINTEGER      BufferLength,  
     SQLINTEGER *    StringLengthPtr);

# 参数说明

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;
}

# 错误码说明

无特殊说明。

# 其他说明

无特殊说明。