Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 |