Partager via


SQLGetData (bibliothèque de curseurs)

Important

Cette fonctionnalité sera supprimée dans une version future de Windows. Évitez d’utiliser cette fonctionnalité dans les nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Microsoft recommande d’utiliser la fonctionnalité de curseur du pilote.

Cette rubrique décrit l’utilisation de la fonction SQLGetData dans la bibliothèque de curseurs. Pour plus d’informations générales sur SQLGetData, consultez FONCTION SQLGetData.

La bibliothèque de curseurs implémente SQLGetData en construisant d’abord une instruction SELECT avec une clause WHERE qui énumère les valeurs stockées dans son cache pour chaque colonne liée de la ligne active. Il exécute ensuite l’instruction SELECT pour resélectionner la ligne et appelle SQLGetData dans le pilote pour récupérer les données de la source de données (par opposition au cache).

Attention

La clause WHERE construite par la bibliothèque de curseurs pour identifier la ligne actuelle peut échouer à identifier des lignes, à identifier une autre ligne ou à identifier plusieurs lignes. Pour plus d’informations, consultez Construction d’instructions recherchées.

Si l’attribut d’instruction SQL_ATTR_USE_BOOKMARKS a la valeur SQL_UB_VARIABLE, SQLGetData peut être appelé sur la colonne 0 pour retourner des données de signet.

Les appels à SQLGetData sont soumis aux restrictions suivantes :

  • SQLGetData ne peut pas être appelé pour les curseurs avant uniquement.

  • SQLGetData ne peut être appelé que lorsque les conditions suivantes sont remplies : une instruction SELECT a généré le jeu de résultats ; l’instruction SELECT ne contenait pas de jointure, de clause UNION ou de clause GROUP BY ; et toutes les colonnes qui utilisaient un alias ou une expression dans la liste de sélection n’étaient pas liées à SQLBindCol.

  • Si le pilote ne prend en charge qu’une seule instruction active, la bibliothèque de curseurs extrait le reste du jeu de résultats avant d’exécuter l’instruction SELECT et d’appeler SQLGetData.