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


Смещения привязки параметров

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

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

Чтобы указать смещение привязки, приложение задает атрибут инструкции SQL_ATTR_PARAM_BIND_OFFSET_PTR на адрес буфера типа SQLINTEGER. Перед вызовом функцией, использующей привязки, приложение помещает смещение в байтах в этот буфер, если ни адрес буфера параметров, ни адрес буфера длины/индикатора не равны 0, и связанный параметр представлен в SQL-запросе. Сумма адреса и смещения должна быть валидным адресом. (Это означает, что либо одно из них, либо оба - смещение и адрес, к которому добавляется смещение, могут быть недопустимы, если их сумма является допустимым адресом.)

Замечание

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