Freigeben über


IRowsetFastLoad::InsertRow (OLE DB)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

OLE DB-Treiber herunterladen

Fügt dem Rowset für das Massenkopieren eine Zeile hinzu. Beispiele finden Sie unter Massenkopieren von Daten mithilfe von IRowsetFastLoad (OLE DB) und Senden von BLOB-Daten an SQL SERVER mit IROWSETFASTLOAD und ISEQUENTIALSTREAM (OLE DB).

Syntax

  
HRESULT InsertRow(  
      HACCESSOR hAccessor,  
      void* pData);  

Argumente

hAccessor[in]
Das Handle des Accessors, der die Zeilendaten für das Massenkopieren definiert. Der Accessor, auf den verwiesen wird, ist ein Zeilenaccessor, der den consumer-eigenen Speicher bindet, in dem sich die Datenwerte befinden.

pData[in]
Ein Zeiger zum consumer-eigenen Speicher, in dem sich die Datenwerte befinden. Weitere Informationen finden Sie unter DBBINDING-Strukturen.

Rückgabecodewerte

S_OK
Die Methode wurde erfolgreich ausgeführt. Alle gebundenen Statuswerte für alle Spalten weisen den Wert DBSTATUS_S_OK oder DBSTATUS_S_NULL auf.

E_FAIL
Ein Fehler ist aufgetreten. Fehlerinformationen sind über die Fehlerschnittstellen des Rowsets verfügbar.

E_INVALIDARG
Das pData -Argument wurde auf einen NULL-Zeiger festgelegt.

E_OUTOFMEMORY
MSOLEDBSQL konnte keinen ausreichenden Arbeitsspeicher zum Ausführen der Anforderung zuweisen.

E_UNEXPECTED
Die Methode wurde für ein Rowset für das Massenkopieren aufgerufen, das zuvor von der IRowsetFastLoad::Commit-Methode für ungültig erklärt wurde.

DB_E_BADACCESSORHANDLE
Das vom Consumer bereitgestellte hAccessor -Argument ist ungültig.

DB_E_BADACCESSORTYPE
Der angegebene Accessor war kein Zeilenaccessor oder hat keinen consumer-eigenen Arbeitsspeicher angegeben.

Bemerkungen

Ein Fehler bei der Konvertierung der Consumerdaten in den SQL Server-Datentyp einer Spalte ruft eine E_FAIL-Rückgabe durch den OLE DB-Treiber für SQL Server hervor. Die Daten können entweder über eine beliebige SQL ServerInsertRow -Methode oder nur über die Commit -Methode an übertragen werden. lDie Consumer-Anwendung kann die InsertRow -Methode mehrere Male mit fehlerhaften Daten aufrufen, bevor eine Meldung eintrifft, dass die Daten nicht korrekt sind. Die Commit -Methode gewährleistet, dass alle Daten ordnungsgemäß vom Consumer angegeben werden. Der Consumer kann die Commit -Methode gegebenenfalls verwenden, um die Daten zu überprüfen.

Die Massenkopieren-Rowsets des OLE DB-Treibers für SQL Server sind lesegeschützt. Der OLE DB-Treiber für SQL Server macht keine Methoden verfügbar, die Consumerabfragen hinsichtlich des Rowsets zulassen. Um die Verarbeitung zu beenden, kann der Consumer seine Verweise auf die IRowsetFastLoad-Schnittstelle ohne die Commit-Methode senden. Es gibt keine Möglichkeit, auf von Consumern eingefügte Zeilen im Rowset zuzugreifen und deren Werte zu ändern oder diese einzeln aus dem Rowset zu entfernen.

Massenkopierte Zeilen werden auf dem Server für SQL Server formatiert. Das Zeilenformat entspricht den Optionen, die eventuell für die Verbindung oder die Sitzung festgelegt wurden, wie z. B. ANSI_PADDING. Diese Option ist standardmäßig für alle über den OLE DB-Treiber für SQL Server angebotenen Verbindungen aktiviert.

Weitere Informationen

IRowsetFastLoad (OLE DB)