Zurückgestellte Puffer

Ein verzögerter Puffer ist ein Puffer, dessen Wert zu einem bestimmten Zeitpunkt verwendet wird, nachdem er in einem Funktionsaufruf angegeben wurde. Beispielsweise wird SQLBindParameter verwendet, um einen Datenpuffer einem Parameter in einer SQL-Anweisung zuzuordnen oder zu binden. Die Anwendung gibt die Anzahl des Parameters an und übergibt die Adresse, die Bytelänge und den Typ des Puffers. Der Treiber speichert diese Informationen, untersucht jedoch nicht den Inhalt des Puffers. Wenn die Anwendung die Anweisung ausführt, ruft der Treiber die Informationen ab und verwendet diese, um die Parameterdaten abzurufen und an die Datenquelle zu senden. Daher wird die Eingabe von Daten im Puffer zurückgestellt. Da verzögerte Puffer in einer Funktion angegeben und in einer anderen verwendet werden, handelt es sich um einen Anwendungsprogrammierungsfehler, um einen verzögerten Puffer frei zu geben, während der Treiber weiterhin erwartet, dass er vorhanden ist; weitere Informationen finden Sie unter "Allocating and Freeing Buffers" weiter unten in diesem Abschnitt.

Sowohl Eingabe- als auch Ausgabepuffer können zurückgestellt werden. In der folgenden Tabelle werden die Verwendung von verzögerten Puffern zusammengefasst. Beachten Sie, dass verzögerte Puffer, die an Resultsetspalten gebunden sind, mit SQLBindCol angegeben werden und verzögerte Puffer, die an SQL-Anweisungsparameter gebunden sind, mit SQLBindParameter angegeben werden.

Pufferverwendung Typ Angegeben mit Verwendet von
Senden von Daten für Eingabeparameter Verzögerte Eingabe SQLBindParameter SQLExecute
SQLExecDirect
Senden von Daten zum Aktualisieren oder Einfügen einer Zeile in ein Resultset Verzögerte Eingabe SQLBindCol Sqlsetpos
Zurückgeben von Daten für Ausgabe- und Eingabe-/Ausgabeparameter Verzögerte Ausgabe SQLBindParameter SQLExecute
SQLExecDirect
Zurückgeben von Resultsetdaten Verzögerte Ausgabe SQLBindCol SQLFetch
SQLFetchScroll SQLSetPos