Partage via


Décalages des liaisons de paramètres

Une application peut spécifier qu’un décalage est ajouté aux adresses de mémoire tampon de paramètres liées et aux adresses de mémoire tampon de longueur/d’indicateur correspondantes lorsque SQLExecDirect ou SQLExecute est appelé. Le résultat de ces ajouts détermine les adresses utilisées dans ces opérations.

Les décalages de liaison permettent à une application de modifier les liaisons sans appeler SQLBindParameter pour les paramètres précédemment liés. Un appel à SQLBindParameter pour rebiner un paramètre modifie l’adresse de la mémoire tampon et le pointeur de longueur/indicateur. La liaison avec un décalage, d’autre part, ajoute simplement un décalage à l’adresse de mémoire tampon de paramètre 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_PARAM_BIND_OFFSET_PTR sur l’adresse d’une mémoire tampon SQLINTEGER. Avant que l’application appelle une fonction qui utilise les liaisons, elle place un décalage en octets dans cette mémoire tampon, tant que ni l’adresse de mémoire tampon du paramètre ni l’adresse de la mémoire tampon de longueur/indicateur n’est 0, et que le paramètre lié se trouve dans l’instruction SQL. 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.)

Remarque

Les décalages de liaison ne sont pas pris en charge par ODBC 2.pilotes x .