Freigeben über


Vorgehensweise: Massenkopieren ohne Formatdatei (ODBC)

In einem vollständigen Beispiel wird gezeigt, wie mit Funktionen zum Massenkopieren eine Datendatei im systemeigenen Modus erstellt werden kann. Der vollständige Beispielcode befindet sich in der Datei BulkCopyNativeMode.cpp, die Sie von der Seite SQL Server Downloads auf MSDN herunterladen können. Dieses Beispiel wurde mit Microsoft Visual C++ 2005 entwickelt und für ODBC Version 3.0 oder höher konzipiert.

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 führen Sie das Massenkopieren ohne Formatdatei aus

  1. Ordnen Sie ein Umgebungshandle und ein Verbindungshandle zu.

  2. Legen Sie SQL_COPT_SS_BCP und SQL_BCP_ON fest, um Massenkopiervorgänge zu aktivieren.

  3. Stellen Sie eine Verbindung mit SQL Server her.

  4. Rufen Sie bcp_init auf, um die folgenden Informationen festzulegen:

    • Name der Tabelle oder Sicht, aus der bzw. in die massenkopiert werden soll

    • Name der Datendatei, welche die in die Datenbank zu kopierenden Daten enthält bzw. in welche die Daten eingefügt werden sollen, die aus der Datenbank kopiert werden

    • Name der Datendatei, in die Fehlermeldungen zum Massenkopiervorgang ausgegeben werden sollen (geben Sie NULL an, wenn keine Meldungsdatei erstellt werden soll)

    • Kopierrichtung: DB_IN, wenn Daten aus der Datei in die Sicht bzw. Tabelle kopiert werden sollen; DB_OUT, wenn Daten aus der Tabelle bzw. Sicht in die Datei kopiert werden sollen

  5. Rufen Sie bcp_exec auf, um den Massenkopiervorgang auszuführen.

Wenn DB_OUT mit diesen Schritten festgelegt wird, wird die Datei im systemeigenen Format erstellt. Die Datei kann dann mit derselben Vorgehensweise auf einen Server massenkopiert werden, mit der Ausnahme, dass DB_OUT statt DB_IN festgelegt wird. Dies funktioniert jedoch nur, wenn sowohl die Quell- als auch die Zieltabellen genau dieselbe Struktur aufweisen.