Vorgehensweise: Massenkopieren von Daten mithilfe von IRowsetFastLoad (OLE DB)

Der Consumer informiert SQLOLEDB über die Anforderung zum Massenkopieren, indem er die SQLOLEDB-anbieterspezifische Datenquelleneigenschaft SSPROP_ENABLEFASTLOAD auf VARIANT_TRUE festlegt. Der Consumer erstellt eine SQLOLEDB-Sitzung, wobei der Eigenschaftensatz auf die Datenquelle festgelegt wird. Die neue Sitzung lässt den Consumerzugriff auf IRowsetFastLoad zu.

Es ist ein vollständiges Beispiel verfügbar, das die Verwendung von IRowsetFastLoad zum Massenkopieren der Datensätze in eine Tabelle veranschaulicht. In diesem Beispiel werden der Tabelle IRFLTable10 Datensätze hinzugefügt. Sie müssen die Tabelle IRFLTable in der Datenbank erstellen.

Sie finden den vollständigen Beispielcode in der Datei BulkCopyRecords.cpp. Sie können von der Website mit SQL Server Downloads auf MSDN ein Archiv herunterladen, das das Beispiel enthält.

Dieses Beispiel wurde mit Microsoft Visual C++ 2005 entwickelt.

SicherheitshinweisSicherheitshinweis

Verwenden Sie nach Möglichkeit die Windows-Authentifizierung. Wenn die Windows-Authentifizierung nicht verfügbar ist, fordern Sie Benutzer auf, ihre Anmeldeinformationen zur Laufzeit einzugeben. Die Anmeldeinformationen sollten nicht in einer Datei gespeichert werden. Wenn Sie die Anmeldeinformationen permanent speichern müssen, verschlüsseln Sie sie mit der Win32 Crypto-API.

So massenkopieren Sie Daten in eine SQL Server-Tabelle

  1. Stellen Sie eine Verbindung mit der Datenquelle her.

  2. Legen Sie die SQLOLEDB-anbieterspezifische Datenquelleneigenschaft SSPROP_ENABLEFASTLOAD auf VARIANT_TRUE fest. Wenn diese Eigenschaft auf VARIANT_TRUE festgelegt wurde, lässt die neu erstellte Sitzung den Consumerzugriff auf IRowsetFastLoad zu.

  3. Erstellen Sie eine Sitzung, in der die IOpenRowset-Schnittstelle angefordert wird.

  4. Rufen Sie IOpenRowset::OpenRowset auf, um ein Rowset zu öffnen, das alle Zeilen aus der Tabelle enthält, in die Daten mit dem Massenkopiervorgang kopiert werden sollen.

  5. Definieren Sie die notwendigen Bindungen, und erstellen Sie mit IAccessor::CreateAccessor einen Accessor.

  6. Richten Sie den Arbeitsspeicherpuffer ein, aus dem die Daten in die Tabelle kopiert werden.

  7. Rufen Sie IRowsetFastLoad::InsertRow auf, um die Daten per Massenkopiervorgang in die Tabelle zu kopieren.