Отложенные буферы
Отложенный буфер — это буфер , значение которого используется в некоторое время после указания в вызове функции. Например, SQLBindParameter используется для связывания или привязки буфера данных с параметром в инструкции SQL. Приложение указывает количество параметров и передает адрес, длину байтов и тип буфера. Драйвер сохраняет эти сведения, но не проверяет содержимое буфера. Позже, когда приложение выполняет инструкцию, драйвер извлекает сведения и использует его для получения данных параметров и отправки его в источник данных. Таким образом, входные данные в буфере откладываются. Так как отложенные буферы указываются в одной функции и используются в другой, это ошибка программирования приложений для освобождения отложенного буфера, пока драйвер по-прежнему ожидает, что он существует; Дополнительные сведения см. в разделе "Выделение и освобождение буферов" далее в этом разделе.
Можно отложить как входные, так и выходные буферы. В следующей таблице приведены сведения об использовании отложенных буферов. Обратите внимание, что отложенные буферы, привязанные к столбцам результирующего набора, задаются с помощью SQLBindCol и отложенные буферы, привязанные к параметрам инструкции SQL, указываются с помощью SQLBindParameter.
Использование буфера | Тип | Задано с помощью | Где используется |
---|---|---|---|
Отправка данных для входных параметров | Отложенные входные данные | SQLBindParameter | SQLExecute SQLExecDirect |
Отправка данных для обновления или вставки строки в результирующем наборе | Отложенные входные данные | SQLBindCol | Sqlsetpos |
Возврат данных для выходных и входных и выходных параметров | Отложенные выходные данные | SQLBindParameter | SQLExecute SQLExecDirect |
Возврат данных результирующих наборов | Отложенные выходные данные | SQLBindCol | SQLFetch SQLFetchScroll SQLSetPos |