Freigeben über


Einfügen von Zeilen mit SQLBulkOperations

Das Einfügen von Daten mit SQLBulkOperations ähnelt dem Aktualisieren von Daten mit SQLBulkOperations , da daten aus den gebundenen Anwendungspuffern verwendet werden.

Damit jede Spalte in der neuen Zeile einen Wert aufweist, müssen alle gebundenen Spalten mit einem Längen-/Indikatorwert von SQL_COLUMN_IGNORE und alle ungebundenen Spalten entweder NULL-Werte akzeptieren oder einen Standardwert aufweisen.

Zum Einfügen von Zeilen mit SQLBulkOperations führt die Anwendung die folgenden Aktionen aus:

  1. Legt das attribut der SQL_ATTR_ROW_ARRAY_SIZE-Anweisung auf die Anzahl der einzufügenden Zeilen fest und platziert die neuen Datenwerte in den gebundenen Anwendungspuffern. Informationen zum Senden langer Daten mit SQLBulkOperations finden Sie unter Long Data and SQLSetPos and SQLBulkOperations.

  2. 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 legt den Wert im Längen-/Indikatorpuffer dieser Spalten fest, die auf deren Standard (sofern vorhanden) oder NULL (falls vorhanden) auf SQL_COLUMN_IGNORE festgelegt werden sollen.

  3. Ruft SQLBulkOperations auf, wobei das Argument Operation auf SQL_ADD festgelegt ist.

Nachdem SQLBulkOperations zurückgegeben wurde, ist die aktuelle Zeile unverändert. Wenn die Textmarkenspalte (Spalte 0) gebunden ist, gibt SQLBulkOperations die Textmarken der eingefügten Zeilen im Zeilensatzpuffer zurück, der an diese Spalte gebunden ist.