Compartilhar via


Buffers adiados

Um buffer adiado é aquele cujo valor é usado em algum momento depois que você o especifica em uma chamada de função. Por exemplo, você usa SQLBindParameter para associar ou vincular um buffer de dados a um parâmetro em uma instrução SQL. Especifique o número do parâmetro e passe o endereço, o comprimento do byte e o tipo do buffer. O driver salva essas informações, mas não examina o conteúdo do buffer. Posteriormente, quando você executa a instrução, o driver recupera as informações e as usa para recuperar os dados do parâmetro e 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 usados em outra, é um erro de programação de aplicativo liberar um buffer adiado enquanto o driver ainda espera que ele exista. Para obter mais informações, consulte Alocando e liberando buffers, mais adiante nesta seção.

Tipos de buffer adiados

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