Поделиться через


Поля дескриптора для столбцов, содержащих параметры, возвращающие табличные значения

Для манипуляций с полями дескриптора для столбцов, содержащих параметры, возвращающие табличные значения, описанными в этом разделе, используются SQLSetDescField и SQLSetDescField с дескриптором для дескриптора параметра реализации (IPD).

Замечания

SQL_DESC_AUTO_UNIQUE_VALUE используется для параметров, возвращающих табличные значения, и других компонентов.

Имя атрибута

Type

Description

SQL_DESC_AUTO_UNIQUE_VALUE

SQLINTEGER

SQL_TRUE указывает, что этот столбец является столбцом идентификаторов.

SQL Server может использовать эти сведения для оптимизации производительности, но приложениям не обязательно задавать их для столбцов идентификаторов.

Следующие атрибуты добавляются к параметрам всех типов в дескрипторе параметра приложения (APD) и дескрипторе параметра реализации (IPD):

Имя атрибута

Type

Description

SQL_CA_SS_COLUMN_COMPUTED

SQLSMALLINT

SQL_TRUE указывает, что этот столбец является столбцом идентификаторов.

SQL Server может использовать эти сведения для оптимизации производительности, но приложениям не обязательно задавать их для вычисляемых столбцов.

Этот атрибут пропускается в случае привязок, не являющихся столбцами параметров, возвращающих табличные значения.

SQL_CA_SS_COLUMN_IN_UNIQUE_KEY

SQLSMALLINT

SQL_TRUE указывает, что столбец возвращающих табличное значение параметров участвует в уникальном ключе. Это может повысить производительность запросов. Этот атрибут пропускается в случае привязок, не являющихся столбцами параметров, возвращающих табличные значения.

SQL_CA_SS_COLUMN_SORT_ORDER

SQLSMALLINT

Указывает параметр сортировки столбца возвращающих табличное значение параметров. Это может повысить производительность запросов. Этот атрибут пропускается в случае привязок, не являющихся столбцами параметров, возвращающих табличные значения. Возможные значения:

  • SQL_SS_ASCENDING_ORDER

  • SQL_SS_DESCENDING_ORDER

  • SQL_SS_ORDER_UNSPECIFIED

Значения, отличные от SQL_SS_ASCENDING_ORDER и SQL_SS_DESCENDING_ORDER, формируют ошибку с кодом SQLSTATE HY024 и сообщением «Invalid attribute value» (недопустимое значение атрибута) и обрабатываются как SQL_SS_ORDER_UNSPECIFIED, которое является значением по умолчанию этого атрибута.

SQL_CA_SS_COLUMN_SORT_ORDINAL

SQLSMALLINT

Указывает порядковый номер столбца параметра, возвращающего табличное значение, в наборе столбцов, которые определяют общий порядок для параметра, возвращающего табличное значение. Это может повысить производительность запросов. Этот атрибут пропускается в случае привязок, не являющихся столбцами параметров, возвращающих табличные значения. Порядковые номера сортировки начинаются с 1. Значение 0, по умолчанию, указывает, что столбец параметра, возвращающего табличное значение, не упорядочен.

SQL_CA_SS_COLUMN_HAS_DEFAULT_VALUE

SQLSMALLINT

Указывает, будут ли все строки параметра, возвращающего табличное значение, иметь значение по умолчанию для этого столбца. Для параметров, возвращающих табличное значение, невозможно выбрать значение по умолчанию построчно. Значение SQL_FALSE указывает, что строки будут иметь значения отличные от значений по умолчанию. Это режим сортировки по умолчанию. Значение SQL_TRUE указывает, что этот столбец будет иметь значения по умолчанию для всех строк.

Если установлено значение SQL_TRUE, данные не будут отправляться на сервер.

Это поле также используется со столбцами идентификаторов или вычисляемых столбцами, если значения столбцов не требуются для обработки сервера.

Эти атрибуты доступны только для столбцов возвращающих табличные значения параметров. Они игнорируются для других параметров.

Если атрибут SQL_CA_SS_COL_HAS_DEFAULT_VALUE установлен для столбца, возвращающего табличное значение параметра, SQL_DESC_DATA_PTR для этого столбца должен быть указателем NULL. В противном случае SQLExecute или SQLExecDirect возвратит SQL_ERROR. Будет сформирована диагностическая запись с кодом SQLSTATE=07S01 и сообщением «Invalid use of default parameter for parameter <p>, column <c>» (Недопустимое использование параметра по умолчанию для параметра <p>, столбец <c>), где <p> — порядковый номер параметра, а <c> — порядковый номер столбца.