Buffers adiados
Um buffer adiado é aquele que tem seu valor usado em algum momento depois ser especificado em uma chamada de função. Por exemplo, SQLBindParameter é usado para associar ou associar um buffer de dados a um parâmetro em uma instrução SQL. O aplicativo especifica o número do parâmetro e passa o endereço, o tamanho em bytes e o tipo do buffer. O driver salva essas informações, mas não examina o conteúdo do buffer. Posteriormente, quando o aplicativo executar a instrução, o driver recuperará as informações e as usará para recuperar os dados de parâmetro que enviá-los para a fonte de dados. Portanto, a entrada de dados no buffer é adiada. Como os buffers adiados são especificados em uma função e usado em outra, liberar um buffer adiado enquanto o driver ainda espera que ele exista é um erro de programação do aplicativo. Para obter mais informações, consulte Alocaer e liberar buffers mais adiante nesta seção.
Tanto o buffer de entrada quanto o de saída podem sem adiados. A tabela a seguir resume os usos de buffers adiados. Observe que os buffers adiados vinculados às colunas do conjunto de resultados são especificados com SQLBindCol e os buffers adiados vinculados aos parâmetros de instrução SQL são especificados com SQLBindParameter.
Uso do buffer | Tipo | Especificado com | Usado por |
---|---|---|---|
Enviando dados para parâmetros de entrada | Entrada adiada | SQLBindParameter | SQLExecute SQLExecDirect |
Enviando dados para atualizar ou inserir uma linha em um conjunto de resultados | Entrada adiada | SQLBindCol | SQLSetPos |
Retornando dados para saída e parâmetros de entrada/saída | Saída adiada | SQLBindParameter | SQLExecute SQLExecDirect |
Retornando dados do conjunto de resultados | Saída adiada | SQLBindCol | SQLFetch SQLFetchScroll SQLSetPos |