Assignation du stockage
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
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 le stockage pour une colonne de données, une application appelle SQLBindCol et la transmet :
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 à l’échelle des colonnes est spécifiée en appelant SQLSetStmtAttr avec l’attribut défini sur SQL_ATTR_ROW_BIND_TYPE et ValuePtr défini sur 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 au niveau des lignes est spécifiée en appelant SQLSetStmtAttr avec l’attribut défini sur SQL_ATTR_ROW_BIND_TYPE et ValuePtr défini sur la taille de la structure contenant les variables qui recevront les colonnes du 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.