Partager via


Assignation du stockage

Une application peut assigner le stockage pour les résultats avant ou après avoir exécuté une instruction SQL. Si une application prépare ou exécute en premier l'instruction SQL, elle peut se renseigner à propos du jeu de résultats avant d'assigner le stockage pour les résultats. Par exemple, si le jeu de résultats est inconnu, l'application doit extraire le nombre de colonnes avant de pouvoir lui assigner du stockage.

Pour associer du stockage à une colonne de données, une application appelle SQLBindCol et lui passe :

  • Le type de données vers lequel les données doivent être converties.

  • L'adresse d'un tampon de sortie pour les données.

    L'application doit allouer cette mémoire tampon, qui doit être suffisamment grande pour contenir les données au format dans lequel elles sont converties.

  • La longueur du tampon de sortie.

    Cette valeur est ignorée si les données retournées ont une largeur fixe dans C, tel qu'un entier, un nombre réel ou une structure de date.

  • L'adresse d'un tampon mémoire dans lequel retourner le nombre d'octets de données disponibles.

Une application peut également lier des colonnes de jeu de résultats à des tableaux de variables de programme afin de prendre en charge l'extraction de lignes de jeu de résultats en blocs. Il existe deux types différents de liaison de tableau :

  • La liaison basée sur les colonnes est finie lorsque chaque colonne est liée à son propre tableau de variables.

    La liaison basée sur les colonnes est spécifiée en appelant SQLSetStmtAttr avec Attribute défini à SQL_ATTR_ROW_BIND_TYPE et ValuePtr défini à SQL_BIND_BY_COLUMN. Tous les tableaux doivent contenir le même nombre d'éléments.

  • La liaison basée sur les lignes est finie lorsque tous les paramètres dans l'instruction SQL sont liés en tant qu'unité à un tableau de structures qui contiennent les variables individuelles pour les paramètres.

    La liaison basée sur les lignes est spécifiée en appelant SQLSetStmtAttr avec Attribute défini à SQL_ATTR_ROW_BIND_TYPE et ValuePtr défini à la taille de la structure contenant les variables qui recevront les colonnes de jeu de résultats.

L'application définit également SQL_ATTR_ROW_ARRAY_SIZE au nombre d'éléments dans les tableaux de colonnes ou de lignes et définit SQL_ATTR_ROW_STATUS_PTR et SQL_ATTR_ROWS_FETCHED_PTR.

Voir aussi

Concepts