Partilhar via


Buffers adiados

Um buffer diferido é aquele cujo valor é usado em algum momento após o especificar numa chamada de função. Por exemplo, usa SQLBindParameter para associar, ou vincular, um data buffer com um parâmetro numa instrução SQL. Especificas o número do parâmetro e passes o endereço, o comprimento do byte e o tipo do buffer. O driver guarda esta informação, mas não examina o conteúdo do buffer. Mais tarde, quando executa a instrução, o driver recupera a informação e usa-a para recuperar os dados dos parâmetros e enviá-los para a fonte de dados. Portanto, a entrada de dados no buffer é adiada. Como os buffers diferidos são especificados numa função e usados noutra, é um erro de programação da aplicação libertar um buffer diferido enquanto o driver ainda espera que exista. Para mais informações, veja Alocação e Libertação de Buffers, mais adiante nesta secção.

Tipos de buffer diferidos

Tanto os buffers de entrada como de saída podem ser diferidos. A tabela seguinte faz um resumo das utilizações dos buffers diferidos. Note que buffers diferidos vinculados às colunas do conjunto de resultados são especificados com SQLBindCol, e buffers diferidos vinculados a parâmetros de instruções SQL são especificados com SQLBindParameter.

Utilização do buffer Tipo Especificado com Utilizado por
Envio de dados para parâmetros de entrada Entrada diferida SQLBindParameter SQLExecute
SQLExecDirect
Enviar dados para atualizar ou inserir uma linha num conjunto de resultados Entrada diferida SQLBindCol SQLSetPos
SQLBulkOperations
Retorno de dados para saída e parâmetros de entrada/saída Saída diferida SQLBindParameter SQLExecute
SQLExecDirect
Retornando dados do conjunto de resultados Saída diferida SQLBindCol SQLFetch
SQLFetchScroll SQLSetPos