Compartilhar via


Recuperando Resultados (Avançado)

Um aplicativo pode especificar que um deslocamento seja adicionado aos endereços de buffer de dados vinculados e aos endereços de buffer de tamanho/indicador correspondentes quando SQLBulkOperations, SQLFetch, SQLFetchScroll ou SQLSetPos são chamados. Os resultados dessas adições determinam os endereços usados nessas operações.

Os offsets de associação permitem que um aplicativo altere as associações sem chamar SQLBindCol para colunas associadas anteriormente. Uma chamada para SQLBindCol para reassociar dados altera o endereço do buffer e o ponteiro de indicador/comprimento. A revinculação com um deslocamento, por outro lado, simplesmente adiciona um deslocamento ao endereço de buffer de dados associado existente e ao endereço de buffer de comprimento/indicador. Quando os deslocamentos são utilizados, as associações atuam como um "modelo" que descreve a disposição dos buffers do aplicativo. O aplicativo pode transferir esse "modelo" para diferentes áreas de memória ao alterar o deslocamento. Um novo deslocamento pode ser especificado a qualquer momento e sempre é adicionado aos valores vinculados originalmente.

Para especificar um deslocamento de associação, o aplicativo define o atributo de instrução SQL_ATTR_ROW_BIND_OFFSET_PTR para o endereço de um buffer SQLINTEGER. Antes que o aplicativo chame uma função que usa as associações, como SQLBulkOperations, SQLFetch, SQLFetchScroll ou SQLSetPos, ela coloca um deslocamento em bytes nesse buffer, desde que o endereço do buffer de dados nem o endereço do buffer de comprimento/indicador seja 0 e enquanto a coluna associada estiver no conjunto de resultados. A soma do endereço e do deslocamento deve ser um endereço válido. (Isso significa que tanto o deslocamento quanto o endereço ao qual ele é adicionado podem ser inválidos, contanto que a soma resulte em um endereço válido.) O atributo de instrução SQL_ATTR_ROW_BIND_OFFSET_PTR é um ponteiro, permitindo que o valor de deslocamento seja aplicado a mais de um conjunto de dados vinculados, todos passíveis de alteração ao modificar um único valor de deslocamento. Um aplicativo deve garantir que o ponteiro permaneça válido até que o cursor seja fechado.

Observação

Não há suporte para deslocamentos de associação pelo ODBC 2. x drivers.

Esta seção contém os seguintes tópicos.