Teilen über


IRowsetFastLoad::InsertRow (Native Client OLE DB Provider)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

Wichtig

Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Sowohl der OLE DB-Anbieter für den SQL Server Native Client (SQLNCLI oder SQLNCLI11) als auch der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für Neuentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL).

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
SQLNCLI11 konnte keinen ausreichenden Arbeitsspeicher zum Ausführen der Anforderung zuordnen.

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.

Hinweise

Ein Fehler beim Konvertieren von Consumerdaten in den SQL Server-Datentyp für eine Spalte führt zu einer E_FAIL Rückgabe vom OLE DB-Anbieter des SQL Server Native Client. 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 Ole DB-Massenkopie-Rowsets des SQL Server Native Client-Anbieters sind schreibgeschützt. Der OLE DB-Anbieter von SQL Server Native Client macht keine Methoden verfügbar, die Consumerabfragen des Rowsets ermöglichen. 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 für jede Verbindung, die über den OLE DB-Anbieter des SQL Server Native Client hergestellt wird, standardmäßig aktiviert.

Weitere Informationen

IRowsetFastLoad (OLE DB)