Partager via


Mémoires tampons différées

Une mémoire tampon différée est celle dont la valeur est utilisée à un moment donné après que vous l'avez spécifiée dans un appel de fonction. Par exemple, vous utilisez SQLBindParameter pour associer, ou lier, une mémoire tampon de données à un paramètre dans une instruction SQL. Vous spécifiez le nombre du paramètre et transmettez l’adresse, la longueur d’octet et le type de la mémoire tampon. Le pilote enregistre ces informations, mais n’examine pas le contenu de la mémoire tampon. Plus tard, lorsque vous exécutez l’instruction, le pilote récupère les informations et l’utilise pour récupérer les données de paramètre et les envoyer à la source de données. Par conséquent, l’entrée de données dans la mémoire tampon est différée. Étant donné que les mémoires tampons différées sont spécifiées dans une fonction et utilisées dans une autre, il s’agit d’une erreur de programmation d’application pour libérer une mémoire tampon différée alors que le pilote s’attend toujours à ce qu’il existe. Pour plus d’informations, consultez Allocation et libération des mémoires tampons, plus loin dans cette section.

Types de mémoires tampons différées

Les mémoires tampons d’entrée et de sortie peuvent être différées. Le tableau suivant récapitule les utilisations de mémoires tampons différées. Notez que les mémoires tampons différées liées aux colonnes du jeu de résultats sont spécifiées avec SQLBindCol et que les mémoires tampons différées liées aux paramètres d’instruction SQL sont spécifiées avec SQLBindParameter.

Utilisation de la mémoire tampon Type Spécifié avec Utilisée par
Envoi de données pour les paramètres d’entrée Entrée différée SQLBindParameter SQLExecute
SQLExecDirect
Envoi de données pour mettre à jour ou insérer une ligne dans un jeu de résultats Entrée différée SQLBindCol SQLSetPos
SQLBulkOperations
Retour de données pour les paramètres de sortie et d’entrée/sortie Sortie différée SQLBindParameter SQLExecute
SQLExecDirect
Retour des données du jeu de résultats Sortie différée SQLBindCol SQLFetch
SQLFetchScroll SQLSetPos