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


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

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

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

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