Share via


Recupero di risultati (avanzato)

Un'applicazione può specificare che è stato aggiunto un offset per associare gli indirizzi del buffer dei dati associati agli indirizzi del buffer di lunghezza/indicatore corrispondenti quando vengono chiamati SQLBulkOperations, SQLFetch, SQLFetchScroll o SQLSetPos. I risultati di queste aggiunte determinano gli indirizzi usati in queste operazioni.

Gli offset di associazione consentono a un'applicazione di modificare le associazioni senza chiamare SQLBindCol per le colonne associate in precedenza. Una chiamata a SQLBindCol per riassociare i dati modifica l'indirizzo del buffer e il puntatore di lunghezza/indicatore. Associarsi nuovamente con un offset, invece, si limita ad aggiungere un offset all'indirizzo del buffer dei dati associati esistenti e all'indirizzo del buffer di lunghezza/indicatore. Quando vengono usati gli offset, le associazioni sono un "modello" della disposizione dei buffer dell'applicazione e l'applicazione può spostare questo "modello" in aree di memoria diverse modificando l'offset. È possibile specificare in qualsiasi momento un nuovo offset, che viene sempre aggiunto ai valori associati originariamente.

Per specificare un offset di associazione, l'applicazione imposta l'attributo di istruzione SQL_ATTR_ROW_BIND_OFFSET_PTR sull'indirizzo di un buffer SQLINTEGER. Prima che l'applicazione chiami una funzione che usa le associazioni, ad esempio SQLBulkOperations, SQLFetch, SQLFetchScroll o SQLSetPos, inserisce un offset in byte in questo buffer, purché né l'indirizzo del buffer dei dati, né l'indirizzo del buffer di lunghezza/indicatore siano 0 e purché la colonna associata si trovi nel set di risultati. La somma dell'indirizzo e dell'offset deve essere un indirizzo valido. (Ciò significa che è possibile che l'offset e l'indirizzo a cui viene aggiunto l'offset, o entrambi, non siano validi, purché la loro somma sia un indirizzo valido.) L'attributo dell'istruzione SQL_ATTR_ROW_BIND_OFFSET_PTR è un puntatore, in modo che il valore di offset possa essere applicato a più set di dati di associazione, tutti modificabili variando un valore di offset. Un'applicazione deve garantire che il puntatore rimanga valido fino alla chiusura del cursore.

Nota

Gli offset di associazione non sono supportati dai driver ODBC 2.x.

Questa sezione descrive gli argomenti seguenti: