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


SQLBindCol

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

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

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

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

См. также

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

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