IRowsetFastLoad::InsertRow (OLE DB)

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 bei der Konvertierung der Consumerdaten in den SQL Server-Datentyp einer Spalte ruft eine E_FAIL-Rückgabe durch den SQL Server Native Client-OLE DB-Anbieter hervor. Die Daten können entweder über eine beliebige InsertRow-Methode oder nur über die Commit-Methode an SQL Server ü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 Massenkopiervorgänge des SQL Server Native Client-OLE DB-Anbieters erlauben nur den Schreibzugriff. Der SQL Server Native Client-OLE DB-Anbieter macht keine Methoden verfügbar, die Abfragen von Consumern hinsichtlich des Rowsets verfügbar machen. 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 SQL Server Native Client-OLE DB-Anbieter angebotenen Verbindungen aktiviert.

Siehe auch

Andere Ressourcen

IRowsetFastLoad (OLE DB)