Share via


Mémoires tampons différées

Une mémoire tampon différée est une mémoire tampon différée dont la valeur est utilisée à un moment donné après qu’elle est spécifiée dans un appel de fonction. Par exemple, SQLBindParameter est utilisé pour associer, ou lier, une mémoire tampon de données à un paramètre dans une instruction SQL. L’application spécifie le nombre du paramètre et transmet 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 l’application exécute 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.

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
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