Поля дескриптора для столбцов, содержащих параметры, возвращающие табличные значения
Для манипуляций с полями дескриптора для столбцов, содержащих параметры, возвращающие табличные значения, описанными в этом разделе, используются 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, формируют ошибку с кодом 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> — порядковый номер столбца.