Données de la colonne
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.
La bibliothèque de curseurs crée une mémoire tampon dans le cache pour chaque mémoire tampon de données liée au jeu de résultats avec SQLBindCol. Il utilise les valeurs de ces mémoires tampons pour construire une clause WHERE lorsqu’il émule une instruction de mise à jour ou de suppression positionnée. Il met à jour ces mémoires tampons à partir des mémoires tampons d’ensemble de lignes lorsqu’il extrait des données de la source de données et lorsqu’il exécute des instructions de mise à jour positionnées.
Lorsque la bibliothèque de curseurs met à jour son cache à partir des mémoires tampons de l’ensemble de lignes, elle transfère les données en fonction du type de données C spécifié dans SQLBindCol. Par exemple, si le type de données C d’une mémoire tampon d’ensemble de lignes est SQL_C_SLONG, la bibliothèque de curseurs transfère quatre octets de données ; si elle est SQL_C_CHAR et que BufferLength est 10, la bibliothèque de curseurs transfère 10 octets de données. La bibliothèque de curseurs n’effectue aucune vérification de type ni aucune conversion sur les données qu’elle transfère.
Notes
La bibliothèque de curseurs ne met pas à jour son cache pour une colonne si *StrLen_or_IndPtr dans la mémoire tampon d’ensemble de lignes correspondante est SQL_DATA_AT_EXEC ou le résultat de la macro SQL_LEN_DATA_AT_EXEC.
Lorsqu’elle met à jour une colonne, une source de données vide-pads contient des données de caractères de longueur fixe et zéro-pads des données binaires de longueur fixe si nécessaire. Par exemple, une source de données stocke « Smith » dans une colonne CHAR(10) sous la forme « Smith ». La bibliothèque de curseurs ne contient pas de données de bloc vide ou de bloc zéro dans les mémoires tampons de l’ensemble de lignes lorsqu’elle copie ces données dans son cache après l’exécution d’une instruction de mise à jour positionnée. Par conséquent, si une application nécessite que les valeurs du cache de la bibliothèque de curseurs soient vides ou non rembourrées, elle doit vider ou zéro-pad les valeurs des mémoires tampons de l’ensemble de lignes avant d’exécuter une instruction de mise à jour positionnée.