Partilhar via


Buffers adiados

Um buffer diferido é aquele cujo valor é utilizado em algum momento após ser especificado numa chamada de função. Por exemplo, o SQLBindParameter é usado para associar, ou associar, um buffer de dados a um parâmetro numa instrução SQL. A aplicação especifica o número do parâmetro e transmite 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 a aplicação 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 ele exista; para mais informações, veja Alocação e Libertação de Buffers, mais adiante nesta secção.

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
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