Freigeben über


Vorgehensweise: Massenkopieren von Daten aus Programmvariablen (ODBC)

Es ist ein Beispiel verfügbar, in dem gezeigt wird, wie mit Massenkopierfunktionen unter Verwendung von bcp_bind und bcp_sendrow Daten aus Programmvariablen nach SQL Server massenkopiert werden. (Zur Vereinfachung dieses Beispiels wurde der Fehlerprüfcode entfernt.)

Der komplette Beispielcode befindet sich in der Datei BulkCopyFromVariables.cpp, die Sie von der Seite SQL Server-Codebeispiele herunterladen können. Dieses Beispiel wurde mit Microsoft Visual C++ 2005 entwickelt und für ODBC Version 3.0 oder höher konzipiert.

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

So verwenden Sie Funktionen zum Massenkopieren direkt für Programmvariablen

  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

    • Geben Sie NULL für den Namen der Datendatei an.

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

    • Die Kopierrichtung: DB_IN von der Anwendung in die Sicht oder Tabelle bzw. DB_OUT von der Tabelle oder Sicht in die Anwendung

  5. Rufen Sie bcp_bind für jede Spalte im Massenkopiervorgang auf, um die Spalte an eine Programmvariable zu binden.

  6. Füllen Sie die Programmvariablen mit Daten, und rufen Sie bcp_sendrow auf, um eine Datenzeile zu senden.

  7. Nachdem mehrere Zeilen gesendet wurden, rufen Sie bcp_batch auf, um einen Prüfpunkt für die bereits gesendeten Zeilen einzufügen. Es wird empfohlen, bcp_batch mindestens einmal nach jeweils 1000 Zeilen aufzurufen.

  8. Nachdem alle Zeilen gesendet wurden, rufen Sie bcp_done auf, um den Vorgang abzuschließen.

Position und Länge der Programmvariablen können während eines Massenkopiervorgangs durch Aufrufe von bcp_colptr und bcp_collen abgeändert werden. Verwenden Sie bcp_control zum Festlegen verschiedener Massenkopieroptionen. Verwenden Sie bcp_moretext, um Daten des Typs textntext und image segmentweise an den Server zu senden.