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


Извлечение результатов (расширенные возможности)

Приложение может указать, что смещение добавляется к привязанным адресам буфера данных и соответствующим адресам буфера длины или индикатора при вызове SQLBulkOperations, SQLFetch, SQLFetchScroll или SQLSetPos . Результаты этих дополнений определяют адреса, используемые в этих операциях.

Смещения привязки позволяют приложению изменять привязки без вызова SQLBindCol для ранее привязанных столбцов. Вызов SQLBindCol для повторной привязки данных изменяет адрес буфера и указатель длины или индикатора. Повторная привязка с смещением, с другой стороны, просто добавляет смещение к существующему связанному адресу буфера данных и адресу буфера индикатора или длины. При использовании смещения привязки представляют собой "шаблон" того, как буферы приложений размещаются, и приложение может переместить этот "шаблон" в разные области памяти, изменив смещение. Новое смещение можно указать в любое время и всегда добавляется в исходные привязанные значения.

Чтобы указать смещение привязки, приложение задает атрибут инструкции SQL_ATTR_ROW_BIND_OFFSET_PTR адресу буфера SQLINTEGER. Прежде чем приложение вызывает функцию, использующую привязки, такие как SQLBulkOperations, SQLFetch, SQLFetchScroll или SQLSetPos, он помещает смещение в байтах в этом буфере, если ни адрес буфера данных, ни адрес буфера длины или индикатора равен 0, а при условии, что связанный столбец находится в результирующем наборе. Сумма адреса и смещения должна быть допустимым адресом. (Это означает, что смещение и адрес, к которому добавляется смещение, может быть недопустимым, если сумма является допустимым адресом.) Атрибут оператора SQL_ATTR_ROW_BIND_OFFSET_PTR является указателем, чтобы значение смещения можно было применить к нескольким наборам данных привязки, все из которых можно изменить, изменив одно значение смещения. Приложение должно убедиться, что указатель остается допустимым, пока курсор не будет закрыт.

Примечание.

Смещения привязки не поддерживаются ODBC 2.драйверы x .

Этот раздел содержит следующие подразделы.