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 vincular, um buffer de dados com 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