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


SQLBindCol

Как правило, учитывайте последствия использования SQLBindCol для преобразования данных. Преобразования привязки являются клиентскими процессами, поэтому, например, получение значения с плавающей запятой, связанного с символьным столбцом, вынуждает драйвер выполнить локальное преобразование «плавающая запятая в символ» при выборке строки. Функция Transact-SQL CONVERT может использоваться для размещения затрат на преобразование данных на сервере.

Экземпляр SQL Server может возвращать несколько наборов результирующих строк при выполнении одной инструкции. Каждый результирующий набор должен быть привязан отдельно. Дополнительные сведения о привязке для нескольких результирующих наборов см. в разделе SQLMoreResults.

Разработчик может привязать столбцы к SQL Server типам данных C, используя значение SQL_C_BINARYTargetType . Столбцы, привязанные к SQL Server типам, не переносятся. Определенные SQL Server типы данных ODBC C соответствуют определениям типов для DB-Library, и разработчики DB-Library перенося приложений могут воспользоваться преимуществами этой функции.

Усечение данных отчетов — это дорогостоящий процесс для драйвера ODBC SQL Server Native Client. Усечения можно избежать с помощью гарантии того, что все буферы связанных данных достаточно широки для возвращения данных. Для символьных данных ширина должна включать пространство для признака конца строки при использовании поведения драйвера по умолчанию для завершения строки. Например, привязка столбца SQL Server char(5) к массиву из пяти символов приводит к усечению каждого извлекаемого значения. Привязка одинакового столбца к массиву из шести символов позволит избежать усечения путем предоставления элемента символа для хранения признака конца NULL. SQLGetData можно использовать для эффективного извлечения длинных символьных и двоичных данных без усечения.

Для типов данных с большими значениями, если предоставленный пользователем буфер недостаточно велик для хранения всего значения столбца, SQL_SUCCESS_WITH_INFO возвращается строка данных; выдается предупреждение об усечении правого права. Аргумент StrLen_or_IndPtr будет содержать число символов или байтов, содержащихся в буфере.

Поддержка функцией SQLBindCol улучшенных возможностей работы с данными в формате даты-времени

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

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

Поддержка функцией SQLBindCol определяемых пользователем типов больших данных CLR

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

См. также:

SQLBindCol, функция
ODBC API Implementation Details