Freigeben über


IBCPSession::BCPControl (OLE DB)

Legt die Optionen für einen Massenkopievorgang fest.

Syntax

  
HRESULT BCPControl(   
inteOption,  
void *iValue);  

Bemerkungen

Die BCPControl-Methode legt verschiedene Steuerelementparameter für Massenkopievorgänge fest, einschließlich der Anzahl der zulässigen Fehler, bevor eine Massenkopie abgebrochen wird, die Zahlen der ersten und letzten Zeilen, die aus einer Datendatei kopiert werden sollen, und die Batchgröße.

Diese Methode wird auch verwendet, um die SELECT-Anweisung anzugeben, die beim Massenkopien von Daten aus SQL Server verwendet werden soll. Sie können das eOption Argument auf BCP_OPTION_HINTS und iValue Argument festlegen, um einen Zeiger auf eine breite Zeichenfolge mit der SELECT-Anweisung zu verwenden.

Mögliche Werte für eOption sind:

Auswahlmöglichkeit BESCHREIBUNG
BCP_OPTION_ABORT Stoppt einen Massenkopievorgang, der bereits ausgeführt wird. Sie können die BCPControl-Methode mit einem eOption-Argument von BCP_OPTION_ABORT aus einem anderen Thread aufrufen, um einen ausgeführten Massenkopievorgang zu beenden. Das Argument "iValue" wird ignoriert.
BCP_OPTION_BATCH Die Anzahl der Zeilen pro Batch. Der Standardwert ist 0, der alle Zeilen in einer Tabelle angibt, wenn Daten extrahiert werden, oder alle Zeilen in der Benutzerdatendatei, wenn Daten in SQL Server kopiert werden. Ein Wert kleiner als 1 setzt BCP_OPTION_BATCH auf den Standardwert zurück.
BCP_OPTION_DELAYREADFMT Ein boolescher Wert, wenn er auf "true" festgelegt ist, bewirkt, dass IBCPSession::BCPReadFmt bei der Ausführung gelesen wird. Wenn "false" (Standardeinstellung) wird die Formatdatei sofort von IBCPSession::BCPReadFmt gelesen. Wenn wahr ist, tritt ein Sequenzfehler auf BCP_OPTION_DELAYREADFMT , und Sie rufen IBCPSession::BCPColumns oder IBCPSession::BCPColFmt auf.

Ein Sequenzfehler tritt auch auf, wenn Sie nach dem Aufrufen IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) und IBCPSession::BCPWriteFmt aufrufenIBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE)).

Weitere Informationen finden Sie unter "Metadatenermittlung".
BCP_OPTION_FILECP Das Argument "iValue " enthält die Anzahl der Codeseite für die Datendatei. Sie können die Anzahl der Codepage angeben, z. B. 1252 oder 850, oder einen der folgenden Werte:

- BCP_FILECP_ACP: Daten in der Datei befinden sich in Microsoft Windows?? Codepage des Clients.
- BCP_FILECP_OEMCP: Daten in der Datei befinden sich auf der OEM-Codeseite des Clients (Standard).
- BCP_FILECP_RAW: Die Daten in der Datei befinden sich auf der Codepage von SQL Server.
BCP_OPTION_FILEFMT Die Versionsnummer des Datendateiformats. Dies kann 80 (SQL Server 2000), 90 (SQL Server 2005), 100 (SQL Server 2008 oder SQL Server 2008 R2), 110 (SQL Server 2012) oder 120 (SQL Server 2014) sein. 120 ist die Standardeinstellung. Dies ist hilfreich beim Exportieren und Importieren von Daten in Formaten, die von früheren Versionen des Servers unterstützt wurden. Wenn Sie z. B. Daten aus einer Textspalte in einem SQL Server 2000-Server in eine Varchar(max) -Spalte in einem SQL Server 2005 oder höher importieren möchten, sollten Sie 80 angeben. Wenn Sie beim Exportieren von Daten aus einer Varchar(max) -Spalte 80 angeben, wird sie genauso gespeichert, wie Textspalten im SQL Server 2000-Format gespeichert werden und in eine Textspalte eines SQL Server 2000-Servers importiert werden können.
BCP_OPTION_FIRST Die erste Datenzeile der zu kopierenden Datei oder Tabelle. Der Standardwert ist 1; Ein Wert kleiner als 1 setzt diese Option auf die Standardeinstellung zurück.
BCP_OPTION_FIRSTEX Gibt für BCP-Outvorgänge die erste Zeile der Datenbanktabelle an, die in die Datendatei kopiert werden soll.

Gibt für BCP in Vorgängen die erste Zeile der Datendatei an, die in die Datenbanktabelle kopiert werden soll.

Der iValue-Parameter wird als Adresse einer signierten 64-Bit-Ganzzahl erwartet, die den Wert enthält. Der Maximalwert, der an BCPFIRSTEX 2^63-1 übergeben werden kann.
BCP_OPTION_FMTXML Wird verwendet, um anzugeben, dass die generierte Formatdatei in einem XML-Format enthalten sein soll. Sie ist standardmäßig deaktiviert, und standardmäßig werden die Formatdateien als Textdateien gespeichert. Die XML-Formatdatei bietet größere Flexibilität, aber mit einigen zusätzlichen Einschränkungen. Sie können z. B. das Präfix und das Endzeichen für ein Feld nicht gleichzeitig angeben, das in älteren Formatdateien möglich ist. Anmerkung: XML-Formatdateien werden nur unterstützt, wenn SQL Server-Tools zusammen mit SQL Server Native Client installiert werden.
BCP_OPTION_HINTS Das iValue-Argument enthält einen breiten Zeichenfolgenzeiger. Die adressierte Zeichenfolge gibt entweder SQL Server-Massenkopienverarbeitungshinweise oder eine Transact-SQL-Anweisung an, die ein Resultset zurückgibt. Wenn eine Transact-SQL-Anweisung angegeben wird, die mehr als ein Resultset zurückgibt, werden alle Resultsets nach der ersten ignoriert.
BCP_OPTION_KEEPIDENTITY Wenn das iValue-Argument auf TRUE festgelegt ist, gibt diese Option an, dass die Massenkopiemethoden Datenwerte einfügen, die für SQL Server-Spalten angegeben sind, die mit einer Identitätseinschränkung definiert sind. Die Eingabedatei muss Werte für die Identitätsspalten angeben. Wenn dies nicht festgelegt ist, werden neue Identitätswerte für die eingefügten Zeilen generiert. Alle Daten, die in der Datei für die Identitätsspalten vorhanden sind, werden ignoriert.
BCP_OPTION_KEEPNULLS Gibt an, ob leere Datenwerte in der Datei in NULL-Werte in der SQL Server-Tabelle konvertiert werden. Wenn das iValue-Argument auf TRUE festgelegt ist, werden leere Werte in NULL in der SQL Server-Tabelle konvertiert. Der Standardwert ist für leere Werte, die in einen Standardwert für die Spalte in der SQL Server-Tabelle konvertiert werden sollen, wenn eine Standardeinstellung vorhanden ist.
BCP_OPTION_LAST Die letzte zu kopierende Zeile. Standardmäßig werden alle Zeilen kopiert. Ein Wert kleiner als 1 setzt diese Option auf die Standardeinstellung zurück.
BCP_OPTION_LASTEX Gibt für BCP-Outvorgänge die letzte Zeile der Datenbanktabelle an, die in die Datendatei kopiert werden soll.

Gibt für BCP in Vorgängen die letzte Zeile der Datendatei an, die in die Datenbanktabelle kopiert werden soll.

Der iValue-Parameter wird als Adresse einer signierten 64-Bit-Ganzzahl erwartet, die den Wert enthält. Der Maximalwert, der an BCPLASTEX übergeben werden kann, ist 2^63-1.
BCP_OPTION_MAXERRS Die Anzahl der Fehler, die zulässig sind, bevor der Massenkopievorgang fehlschlägt. Der Standardwert ist 10. Ein Wert kleiner als 1 setzt diese Option auf die Standardeinstellung zurück. Massenkopie erzwingt maximal 65.535 Fehler. Ein Versuch, diese Option auf einen Wert festzulegen, der größer als 65.535 ist, führt dazu, dass die Option auf 65.535 festgelegt wird.
BCP_OPTION_ROWCOUNT Gibt die Anzahl der Zeilen zurück, die von dem aktuellen (oder letzten) BCP-Vorgang betroffen sind.
BCP_OPTION_TEXTFILE Die Datendatei ist keine Binärdatei, sondern eine Textdatei. BCP erkennt, ob die Textdatei Unicode ist oder nicht, indem die Unicode-Bytemarkierung in den ersten 2 Byte der Datendatei überprüft wird.
BCP_OPTION_UNICODEFILE Wenn diese Option auf TRUE festgelegt ist, gibt diese Option an, dass es sich bei der Eingabedatei um ein Unicode-Dateiformat handelt.

Argumente

eOption[in]
Legen Sie eine der optionen fest, die oben im Abschnitt "Hinweise" aufgeführt sind.

iValue[in]
Der Wert für die angegebene eOption. Das iValue-Argument ist ein ganzzahliger Wert, der in einen leeren Zeiger umgewandelt wird, um eine zukünftige Erweiterung auf 64-Bit-Werte zu ermöglichen.

Rückgabecodewerte

S_OK
Die Methode war erfolgreich.

E_FAIL
Ein anbieterspezifischer Fehler ist aufgetreten; um detaillierte Informationen zu erhalten, verwenden Sie die ISQLServerErrorInfo-Schnittstelle .

E_UNEXPECTED
Der Aufruf der Methode war unerwartet. Die IBCPSession::BCPInit-Methode wurde beispielsweise vor dem Aufrufen dieser Funktion nicht aufgerufen.

E_OUTOFMEMORY
Fehler beim Ausfall des Arbeitsspeichers.

Siehe auch

IBCPSession (OLE DB)
Durchführung von Massendatenkopien