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


SQLBindParameter

SQLBindParameterможет устранить нагрузку на преобразование данных при использовании для предоставления данных для драйвера ODBC SQL Server Native Client, что приводит к значительному повышению производительности как клиентских, так и серверных компонентов приложений. Другие преимущества — снижение потери точности при вставке или изменении приблизительных числовых типов данных.

Примечание

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

Если драйвер SQL SERVER NATIVE CLIENT ODBC обнаруживает ошибку в одном элементе массива массива параметров, драйвер продолжает выполнять инструкцию для остальных элементов массива. Если приложение выполнило привязку массива элементов параметров состояния, то строки параметров, которые вызвали ошибку, можно определить по массиву.

При использовании драйвера SQL SERVER NATIVE CLIENT ODBC укажите SQL_PARAM_INPUT при привязке входных параметров. Значения SQL_PARAM_OUTPUT и SQL_PARAM_INPUT_OUTPUT следует задавать только для привязки параметров хранимой процедуры, для которых указано ключевое слово OUTPUT.

SQLRowCount ненадежна с драйвером ODBC SQL Server Native Client, если элемент массива массива с привязкой параметров вызывает ошибку при выполнении инструкции. Атрибут инструкции ODBC SQL_ATTR_PARAMS_PROCESSED_PTR возвращает число строк, обработанных до возникновения ошибки. Затем при необходимости приложение может просмотреть массив состояний параметров, чтобы выяснить количество успешно выполненных инструкций.

Привязка параметров для символьных типов SQL

Если передаваемый тип данных SQL является символьным, ColumnSize — это размер в символах (а не в байтах). Если длина строки данных в байтах превышает 8000, параметру ColumnSize следует задать значение SQL_SS_LENGTH_UNLIMITED, указывающее, что размер типа SQL не ограничен.

Например, если тип данных SQL — SQL_WVARCHAR, columnSize не должен быть больше 4000. Если фактическая длина данных превышает 4000, то параметру ColumnSize следует задать значение SQL_SS_LENGTH_UNLIMITED , nvarchar(max) чтобы он использовался драйвером.

Параметр SQLBindParameter и возвращающие табличные значения параметры

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

После привязки возвращающего табличное значение параметра его столбцы также оказываются привязанными. Чтобы привязать столбцы, вызовите SQLSetStmtAttr , чтобы задать SQL_SOPT_SS_PARAM_FOCUS порядковый номер возвращающего табличное значение параметра. Затем вызовите SQLBindParameter для каждого столбца в возвращающем табличное значение параметре. Для возвращения к высокоуровневой привязке параметров задайте для SQL_SOPT_SS_PARAM_FOCUS значение 0.

Сведения о сопоставлении параметров с полями дескриптора для возвращающих табличное значение параметров см. в статье Привязка и передача данных Table-Valued параметров и значений столбцов.

Дополнительные сведения о возвращаемых табличном значении параметрах см. в разделе Параметры с табличным значением (ODBC).

Поддержка метода SQLBindParameter для улучшенных функций даты-времени

Значения параметров типов даты и времени преобразуются, как описано в разделе Преобразования из C в SQL. Обратите внимание, что параметры типа time и datetimeoffset должны иметь значение ValueType как SQL_C_DEFAULT или SQL_C_BINARY , если используются соответствующие структуры (SQL_SS_TIME2_STRUCT и SQL_SS_TIMESTAMPOFFSET_STRUCT).

Дополнительные сведения см. в разделе Улучшения даты и времени (ODBC).

Поддержка метода SQLBindParameter для больших определяемых пользователем типов в среде CLR

Функция SQLBindParameter поддерживает определяемые пользователем типы больших данных CLR. Дополнительные сведения см. в статье Крупные типы User-Defined CLR (ODBC).

См. также:

ODBC API Implementation Details
Функция SQLBindParameter