Récupération des résultats (avancée)
Une application peut spécifier qu’un décalage est ajouté aux adresses de mémoire tampon de données liées et aux adresses de mémoire tampon de longueur/d’indicateur correspondantes lorsque SQLBulkOperations, SQLFetchScroll ou SQLSetPos est appelé. Les résultats de ces ajouts déterminent les adresses utilisées dans ces opérations.
Les décalages de liaison permettent à une application de modifier les liaisons sans appeler SQLBindCol pour les colonnes précédemment liées. Un appel à SQLBindCol pour rebinder les données modifie l’adresse de la mémoire tampon et le pointeur de longueur/indicateur. La liaison avec un décalage, en revanche, ajoute simplement un décalage à l’adresse de mémoire tampon liée existante et à l’adresse de mémoire tampon de longueur/indicateur. Lorsque des décalages sont utilisés, les liaisons sont un « modèle » de la façon dont les mémoires tampons d’application sont disposées et l’application peut déplacer ce « modèle » vers différentes zones de mémoire en modifiant le décalage. Un nouveau décalage peut être spécifié à tout moment et est toujours ajouté aux valeurs liées à l’origine.
Pour spécifier un décalage de liaison, l’application définit l’attribut d’instruction SQL_ATTR_ROW_BIND_OFFSET_PTR à l’adresse d’une mémoire tampon SQLINTEGER. Avant que l’application appelle une fonction qui utilise les liaisons, telles que SQLBulkOperations, SQLFetch, SQLFetchScroll ou SQLSetPos, elle place un décalage en octets dans cette mémoire tampon, tant que l’adresse de la mémoire tampon de données ni l’adresse de mémoire tampon de longueur/indicateur n’est 0, et tant que la colonne liée se trouve dans le jeu de résultats. La somme de l’adresse et du décalage doit être une adresse valide. (Cela signifie que le décalage ou l’adresse à laquelle le décalage est ajouté peut être non valide, tant que leur somme est une adresse valide.) L’attribut d’instruction SQL_ATTR_ROW_BIND_OFFSET_PTR est un pointeur afin que la valeur de décalage puisse être appliquée à plusieurs ensembles de données de liaison, qui peuvent toutes être modifiées en modifiant une valeur de décalage. Une application doit s’assurer que le pointeur reste valide jusqu’à ce que le curseur soit fermé.
Remarque
Les décalages de liaison ne sont pas pris en charge par ODBC 2.pilotes x .
Cette section contient les rubriques suivantes :