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


SQLBindCol

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

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

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

Отчет об усечении данных — это ресурсоемкий для драйвера ODBC собственного клиента SQL Server процесс. Усечения можно избежать с помощью гарантии того, что все буферы связанных данных достаточно широки для возвращения данных. Для символьных данных ширина должна включать пространство для признака конца строки при использовании поведения драйвера по умолчанию для завершения строки. Например, привязка столбца 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. Дополнительные сведения см. в разделе Определяемые пользователем типы данных больших значений CLR (ODBC).

См. также

Основные понятия

Подробности реализации API-интерфейса ODBC

Другие ресурсы

SQLBindCol, функция