Partager via


Handles de descripteur

Un descripteur est une collection de métadonnées qui décrit les paramètres d’une instruction SQL ou les colonnes d’un jeu de résultats, comme indiqué par l’application ou le pilote (également appelé implémentation). Ainsi, un descripteur peut remplir l’un des quatre rôles suivants :

  • Descripteur de paramètre d’application (APD). Contient des informations sur les mémoires tampons d’application liées aux paramètres d’une instruction SQL, telles que leurs adresses, leurs longueurs et leurs types de données C.

  • Descripteur de paramètre d’implémentation (IPD). Contient des informations sur les paramètres d’une instruction SQL, telles que leurs types de données SQL, leurs longueurs et leur possibilité null.

  • Descripteur de ligne d’application (ARD). Contient des informations sur les mémoires tampons d’application liées aux colonnes d’un jeu de résultats, telles que leurs adresses, leurs longueurs et leurs types de données C.

  • Descripteur de ligne d’implémentation (IRD). Contient des informations sur les colonnes d’un jeu de résultats, telles que leurs types de données SQL, leurs longueurs et leur possibilité null.

Quatre descripteurs (un remplissage de chaque rôle) sont alloués automatiquement lorsqu’une instruction est allouée. Elles sont appelées descripteurs alloués automatiquement et sont toujours associées à cette instruction. Les applications peuvent également allouer des descripteurs avec SQLAllocHandle. Ces descripteurs sont appelés descripteurs explicitement alloués. Ils sont alloués sur une connexion et peuvent être associés à une ou plusieurs instructions sur cette connexion pour remplir le rôle d’une APD ou d’un ARD sur ces instructions.

La plupart des opérations dans ODBC peuvent être effectuées sans utilisation explicite de descripteurs par l’application. Toutefois, les descripteurs fournissent un raccourci pratique pour certaines opérations. Par exemple, supposons qu’une application souhaite insérer des données à partir de deux ensembles de mémoires tampons différents. Pour utiliser le premier jeu de mémoires tampons, il appelle à plusieurs reprises SQLBindParameter pour les lier aux paramètres d’une instruction INSERT , puis exécute l’instruction. Pour utiliser le deuxième jeu de mémoires tampons, il répétait ce processus. Il peut également configurer des liaisons au premier ensemble de mémoires tampons d’un descripteur et au deuxième ensemble de mémoires tampons dans un autre descripteur. Pour basculer entre les ensembles de liaisons, l’application appelle simplement SQLSetStmtAttr et associe le descripteur correct à l’instruction comme APD.

Pour plus d’informations sur les descripteurs, consultez Types de descripteurs.