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


Отложенные буферы

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

Отложенные типы буферов

Можно отложить как входные, так и выходные буферы. В следующей таблице приведены сведения об использовании отложенных буферов. Обратите внимание, что отложенные буферы, привязанные к столбцам результирующего набора, задаются с помощью SQLBindCol и отложенные буферы, привязанные к параметрам инструкции SQL, указываются с помощью SQLBindParameter.

Использование буфера Тип Задано с помощью Где используется
Отправка данных для входных параметров Отложенные входные данные SQLBindParameter SQLExecute
SQLExecDirect
Отправка данных для обновления или вставки строки в результирующем наборе Отложенные входные данные SQLBindCol SQLSetPos
SQLBulkOperations
Возврат данных для выходных и входных и выходных параметров Отложенные выходные данные SQLBindParameter SQLExecute
SQLExecDirect
Возврат данных результирующих наборов Отложенные выходные данные SQLBindCol SQLFetch
SQLFetchScroll SQLSetPos