Deslocamentos de associação de parâmetro
Um aplicativo pode especificar que um deslocamento seja adicionado aos endereços de buffer de parâmetros associados e aos endereços de buffer de comprimento/indicador correspondentes quando SQLExecDirect ou SQLExecute for chamado. O resultado dessas adições determina os endereços que essas operações usam.
Os deslocamentos de associação permitem que um aplicativo altere associações sem chamar SQLBindParameter para parâmetros já associados. Uma chamada a SQLBindParameter para reassociar um parâmetro altera o endereço do buffer e o ponteiro de comprimento/indicador. A reassociação a um deslocamento, por outro lado, apenas adiciona um deslocamento ao endereço do buffer de parâmetros associados e ao endereço do buffer de comprimento/indicador. Quando são usados deslocamentos, as associações são um "modelo" de como os buffers do aplicativo são dispostos, e o aplicativo pode mover esse "modelo" para diferentes áreas da memória alterando o deslocamento. É possível especificar um novo deslocamento a qualquer momento, e ele sempre é adicionado aos valores originalmente associados.
Para especificar um deslocamento de associação, o aplicativo define o atributo de instrução SQL_ATTR_PARAM_BIND_OFFSET_PTR para o endereço de um buffer SQLINTEGER. Antes de chamar uma função que usa as associações, o aplicativo coloca um deslocamento em bytes nesse buffer, desde que nem o endereço do buffer de parâmetros nem o endereço do buffer de comprimento/indicador seja 0 e o parâmetro associado esteja na instrução SQL. A soma do deslocamento e do endereço deve ser um endereço válido. (Isso significa que um ou ambos os deslocamentos e o endereço ao qual o deslocamento é adicionado podem ser inválidos, desde que a soma seja um endereço válido.)
Observação
Deslocamentos de associação não são suportados pelos drivers ODBC 2.x.