Condividi tramite


Offset di associazione dei parametri

Un'applicazione può specificare che è stato aggiunto un offset per associare gli indirizzi del buffer dei parametri associati agli indirizzi del buffer di lunghezza/indicatore corrispondenti quando viene chiamato SQLExecDirect o SQLExecute. Il risultato di queste aggiunte determina gli indirizzi usati in queste operazioni.

Gli offset di associazione consentono a un'applicazione di modificare le associazioni senza chiamare SQLBindParameter per i parametri associati in precedenza. Una chiamata a SQLBindParameter per riassociare un parametro 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 parametri 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 un nuovo offset in qualsiasi momento e viene sempre aggiunto ai valori associati originariamente.

Per specificare un offset di associazione, l'applicazione imposta l'attributo di istruzione SQL_ATTR_PARAM_BIND_OFFSET_PTR sull'indirizzo di un buffer SQLINTEGER. Prima che l'applicazione chiami una funzione che usa le associazioni, inserisce un offset in byte in questo buffer, purché né l'indirizzo del buffer dei parametri né l'indirizzo del buffer indicatore/di lunghezza sia 0 e il parametro associato si trovi nell'istruzione SQL. La somma dell'indirizzo e dell'offset deve essere un indirizzo valido. (Ciò significa che, purché la somma sia un indirizzo valido, sia l'offset che l'indirizzo a cui viene aggiunto l'offset, possono non essere validi).

Nota

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