Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Führt den Massenkopievorgang aus.
Syntax
HRESULT BCPExec(
DBROWCOUNT *pRowsCopied);
Bemerkungen
Die BCPExec-Methode kopiert Daten aus einer Benutzerdatei in eine Datenbanktabelle oder umgekehrt, abhängig vom Wert des eDirection-Parameters , der mit der IBCPSession::BCPInit-Methode verwendet wird.
Rufen Sie vor dem Aufrufen von BCPExec die BCPInit-Methode mit einem gültigen Benutzernamen auf. Wenn dies nicht getan wird, führt dies zu einem Fehler. Die einzige Ausnahme ist, wenn eine Abfrage für einen Massenkopiervorgang verwendet werden soll. Geben Sie in diesem Fall NULL für den Tabellennamen in der BCPInit-Methode an, und geben Sie dann die Abfrage mithilfe der option BCP_OPTION_HINTS an.
Die BCPExec-Methode ist die einzige Massenkopiemethode, die wahrscheinlich für eine beliebige Dauer ausstehender Zeit ist. Es handelt sich daher um die einzige Massenkopiemethode, die den asynchronen Modus unterstützt. Um den asynchronen Modus zu verwenden, legen Sie die anbieterspezifische Sitzungseigenschaft SSPROP_ASYNCH_BULKCOPY auf VARIANT_TRUE fest, bevor Sie die BCPExec-Methode aufrufen. Diese Eigenschaft ist im DBPROPSET_SQLSERVERSESSION Eigenschaftensatz verfügbar. Rufen Sie die BCPExec-Methode mit denselben Parametern auf, um den Abschluss zu testen. Wenn die Massenkopie noch nicht abgeschlossen wurde, gibt die BCPExec-Methode DB_S_ASYNCHRONOUS zurück. Außerdem wird im Argument pRowsCopied eine Statusanzahl der Zeilen zurückgegeben, die an den Server gesendet oder empfangen wurden. Zeilen, die an den Server gesendet werden, werden erst zugesichert, wenn das Ende eines Batches erreicht wurde.
Argumente
pRowsCopied[out]
Ein Zeiger auf ein DWORD. Die BCPExec-Methode füllt das DWORD mit der Anzahl der erfolgreich kopierten Zeilen. Wenn das Argument pRowsCopied auf NULL festgelegt ist, wird es von der BCPExec-Methode ignoriert.
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_UNERWARTET
Der Aufruf der Methode war unerwartet. Die BCPInit -Methode wurde beispielsweise erst nach dem Aufruf dieser Methode aufgerufen. Tritt auch auf, wenn der Vorgang mithilfe der option BCP_OPTION_ABORT abgebrochen wurde und die BCPExec-Methode danach aufgerufen wurde.
E_OUTOFMEMORY
Fehler beim Ausfall des Arbeitsspeichers.
DB_S_ENDOFROWSET
Der Massenkopievorgang wurde abgeschlossen, und alle Datenübertragungen wurden abgeschlossen.
DB_S_ASYNCHRONOUS
Der aktuelle Zeilenbatch wurde kopiert. Rufen Sie die BCPExec-Methode erneut auf, um den nächsten Batch zu übertragen.
DB_S_ERRORSOCCURRED
Fehler während des Massenkopievorgangs, und einige Zeilen wurden möglicherweise nicht kopiert. Die Anzahl der Fehler ist immer noch kleiner als die maximal zulässigen Fehler.