Udostępnij za pośrednictwem


IBCPSession::BCPExec (OLE DB)

Wykonuje kopiowanie masowe operacji.

HRESULT BCPExec( 
      DBROWCOUNT *pRowsCopied);

Remarks

The BCPExec metoda copies data from a user file to a database tabela or vice versa, depending on the value of the eDirection parameter used with the IBCPSession::BCPInit metoda.

Przed telefonicznej BCPExec, call the BCPInit metoda pod nazwą użytkownika jest nieprawidłowe.Zaniechanie tej czynności powoduje błąd.Jedynym wyjątkiem jest, jeśli kwerenda ma być używany dla kopiowanie masowe limit operacji.W takim przypadek należy określić wartość NULL dla nazwy tabela w BCPInit metoda, a następnie określ kwerendę, korzystając z opcji BCP_OPTION_HINTS.

The BCPExec metoda is the only kopiowanie masowe metoda that is likely to be outstanding for any length of czas.W związku z tym jest jedynym zbiorczej metoda kopii, która obsługuje asynchroniczny tryb.Do pracy w trybie asynchronicznym, właściwość dostawca określonej sesja SSPROP_ASYNCH_BULKCOPY na VARIANT_TRUE przed telefonicznej BCPExec metoda.Ta właściwość jest dostępna w DBPROPSET_SQLSERVERSESSION zestaw właściwości.Aby przetestować ukończenia, wywołanie BCPExec metoda z tymi samymi parametrami.Jeśli kopiowanie masowe nie zostało jeszcze zakończone, BCPExec metoda zwraca DB_S_ASYNCHRONOUS.Zwraca ona także w pRowsCopied argument zliczania stanu liczby wierszy, które zostały wysłane do lub odebrał od serwera. Wiersze wysłane do serwera nie są zobowiązane do czasu osiągnięcia celu partia.

Argumenty

  • pRowsCopied[Brak]
    Wskaźnik na wartość typu DWORD.The BCPExec metoda fills the DWORD with the number of rows successfully copied.Jeśli pRowsCopied argument jest zestaw wartość null, jest on ignorowany przez BCPExec metoda.

Wartości kodów powrotnych

  • S_OK
    metoda powiodło się.

  • E_FAIL
    Wystąpił błąd specyficzny dla dostawca; Aby uzyskać szczegółowe informacje, użyj ISQLServerErrorInfo interfejs.

  • E_UNEXPECTED
    Wywołanie metoda było nieoczekiwane.Na przykład BCPInit metoda nie została wywołana przed wywołaniem tej metody.Ma miejsce, gdy operacja została przerwana przez użycie opcji BCP_OPTION_ABORT oraz BCPExec Wywołana została metoda później.

  • E_OUTOFMEMORY
    Błąd limitu pamięci.

  • DB_S_ENDOFROWSET
    kopiowanie masowe Operacja zakończona i przeniesienia danych zostało ukończone.

  • DB_S_ASYNCHRONOUS
    Bieżącej instancji wiersze zostały skopiowane.Wywołanie BCPExec metoda ponownie, aby przenieść następnej partia.

  • DB_S_ERRORSOCCURRED
    Wystąpił błąd podczas operacji kopiowania zbiorczej, a niektóre wiersze może nie zostały skopiowane.Liczba błędów jest jeszcze mniejszy niż błędy maksymalne dozwolone.