SQLBindParameter
Параметр 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. Следует заметить, что у параметров типа time и datetimeoffset в качестве значения параметра ValueType должно быть указано значение SQL_C_DEFAULT или SQL_C_BINARY, если используются их соответствующие структуры (SQL_SS_TIME2_STRUCT и SQL_SS_TIMESTAMPOFFSET_STRUCT).
Дополнительные сведения см. в разделе Улучшенная обработка даты и времени (ODBC).
Поддержка метода SQLBindParameter для больших определяемых пользователем типов в среде CLR
Метод SQLBindParameter поддерживает большие определяемые пользователем типы (UDT) в среде CLR. Дополнительные сведения см. в разделе Определяемые пользователем типы данных больших значений CLR (ODBC).
См. также