SQLBindParameter

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

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

Примечание.

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

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

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

SQLRowCount является ненадежным с драйвером ODBC собственного клиента SQL Server, если элемент массива массива привязанных параметров вызывает ошибку в выполнении инструкции. Атрибут инструкции 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.

Сведения о сопоставлении параметров с дескриптором для табличных параметров см. в разделе "Привязка" и "Передача данных" параметров табличного значения и значений столбцов.

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

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

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

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

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

SQLBindParameter поддерживает большие определяемые пользователем типы CLR (определяемые пользователем UDTs). Дополнительные сведения см. в разделе "Крупные определяемые пользователем типы CLR" (ODBC).

См. также

Подробные сведения о реализации API-интерфейсов ODBC
Функция SQLBindParameter