Partager via


Utilisation de curseurs de bloc avec les API

Les curseurs de serveur pour API ne sont pas limités à l'extraction d'une seule ligne à la fois ; ils peuvent extraire plusieurs lignes lors de chaque extraction. Lorsque vous utilisez une base de données client/serveur, telle que Microsoft SQL Server, il est plus efficace d'extraire plusieurs lignes à la fois. Le nombre de lignes retournées lors d'une extraction représente la taille de l'ensemble de lignes. Les curseurs dont la taille de l'ensemble de lignes est supérieure à 1 sont appelés curseurs de bloc. Dans les API prises en charge, vous pouvez utiliser les curseurs de bloc en procédant comme suit :

  • ODBC

    • Définissez l'attribut d'instruction SQL_ATTR_ROWSET_SIZE sur la taille de l'ensemble de lignes.

    • Utilisez la liaison de colonnes ou de lignes pour lier les colonnes aux tableaux de variables devant contenir les données des lignes retournées. Le nombre d'éléments de chaque tableau est égal à la taille de l'ensemble de lignes.

    • Chaque appel de SQLFetchScroll extrait le nombre de lignes défini à l'aide de SQL_ATTR_ROWSET_SIZE.

  • OLE DB

    • Allouez un tableau de descripteurs de lignes et liez les colonnes représentées par chaque descripteur au tableau de variables devant contenir les données des colonnes.

    • Appelez IRowset::GetNextRows en définissant le paramètre cRows sur le nombre de descripteurs contenus dans le tableau de descripteurs de lignes et en indiquant l'adresse de ce tableau dans le paramètre prghRows.

  • ADO

    • Dimensionnez une variante capable de stocker toutes les données correspondant au nombre de lignes à extraire.

    • Vous pouvez éventuellement vous positionner à l'emplacement approprié du curseur à l'aide des méthodes d'ensemble d'enregistrements Move, MoveFirst, MoveLast, MoveNext et MovePrevious.

    • Appelez la méthode d'ensemble d'enregistrements GetRows avec le paramètre array qui contient l'adresse de la variante de stockage des lignes et le paramètre Crows qui contient le nombre de lignes à retourner. Vous pouvez éventuellement utiliser le paramètre Start pour indiquer la position d'extraction dans l'ensemble d'enregistrements.