Freigeben über


Zeilen mittels SQLBulkOperations abrufen

Durch einen Aufruf von SQLBulkOperations können Daten mithilfe von Textmarken in eine Zeilenmenge zurückgeholt werden. Die abzurufenden Zeilen werden durch die Textmarken in einer gebundenen Textmarkenspalte identifiziert. Spalten mit einem Wert von SQL_COLUMN_IGNORE werden nicht abgerufen.

Zum Ausführen von Massenabrufen mit SQLBulkOperations führt die Anwendung die folgenden Aktionen aus:

  1. Ruft die Lesezeichen aller zu aktualisierenden Zeilen ab und speichert sie im Zwischenspeicher. Wenn mehr als eine Textmarke und spaltenweise Bindung verwendet wird, werden die Lesezeichen in einem Array gespeichert. Wenn mehr als eine Textmarke und zeilenweise Bindung verwendet wird, werden die Lesezeichen in einem Array von Zeilenstrukturen gespeichert.

  2. Setzt das SQL_ATTR_ROW_ARRAY_SIZE-Anweisungsattribut auf die Anzahl der Zeilen zum Abrufen fest und bindet den Puffer, der den Bookmark-Wert oder das Array von Bookmarks enthält, an die Spalte 0.

  3. Legt den Wert im Längen-/Indikatorpuffer jeder Spalte bei Bedarf fest. Dies ist die Bytelänge der Daten oder SQL_NTS für Spalten, die an Zeichenfolgenpuffer gebunden sind, die Bytelänge der Daten für Spalten, die an binäre Puffer gebunden sind, und SQL_NULL_DATA, damit alle Spalten auf NULL festgelegt werden. Die Anwendung setzt den Wert im Längen-/Indikatorpuffer derjenigen Spalten, die auf ihren Standardwert (sofern vorhanden) oder auf NULL (wenn keiner vorhanden ist) gesetzt werden sollen, auf SQL_COLUMN_IGNORE.

  4. Ruft SQLBulkOperations auf, wobei das Argument Operation auf SQL_FETCH_BY_BOOKMARK festgelegt ist.

Es ist nicht erforderlich, dass die Anwendung das Zeilenvorgangsarray verwendet, um zu verhindern, dass der Vorgang für bestimmte Spalten ausgeführt wird. Die Anwendung wählt die Zeilen aus, die sie abrufen möchte, indem nur die Lesezeichen für diese Zeilen in das gebundene Lesezeichenarray kopiert werden.