Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
System Platform Analitycznych (PDW)
Baza danych SQL w Microsoft Fabric
Wykonuje operację kopiowania masowego.
Składnia
HRESULT BCPExec(
DBROWCOUNT *pRowsCopied);
Uwagi
Metoda BCPExec kopiuje dane z pliku użytkownika do tabeli bazy danych lub odwrotnie, w zależności od wartości parametru eDirection używanego w metodzie IBCPSession::BCPInit .
Przed wywołaniem BCPExec wywołaj metodę BCPInit z prawidłową nazwą pliku użytkownika. Niezrobienie tego skutkuje błędem. Jedynym wyjątkiem jest sytuacja, gdy zapytanie ma być użyte do operacji masowego kopiowania. W takim przypadku określ NULL dla nazwy tabeli w metodzie BCPInit , a następnie określ zapytanie za pomocą opcji BCP_OPTION_HINTS.
Metoda BCPExec jest jedyną metodą kopiowania masowego, która prawdopodobnie pozostaje nieaktywna przez dłuższy czas. Jest to zatem jedyna metoda kopiowania masowego obsługująca tryb asynchroniczny. Aby użyć trybu asynchronicznego, ustaw specyficzną dla dostawcy właściwość sesji SSPROP_ASYNCH_BULKCOPY na VARIANT_TRUE przed wywołaniem metody BCPExec . Ta własność jest dostępna w zbiorze DBPROPSET_SQLSERVERSESSION właściwości. Aby sprawdzić ukończenie, wywołaj metodę BCPExec o tych samych parametrach. Jeśli kopia masowa nie została jeszcze ukończona, metoda BCPExec zwraca DB_S_ASYNCHRONOUS. W argumentze pRowsCopied zwraca także liczbę statusów liczby wierszy, które zostały wysłane lub odebrane od serwera. Wiersze wysyłane na serwer nie są zatwierdzane, dopóki partia nie zostanie zakończona.
Arguments
pRowsCocopyed[out]
Wskazówka do DWORD. Metoda BCPExec wypełnia DWORD liczbą wierszy pomyślnie skopiowanych. Jeśli argument pRowsCopied jest ustawiony na NULL, jest ignorowany przez metodę BCPExec .
Zwracanie wartości kodu
S_OK
Metoda się powiodła.
E_FAIL
Wystąpił błąd specyficzny dla dostawcy; aby uzyskać szczegółowe informacje, użyj interfejsu ISQLServerErrorInfo .
E_UNEXPECTED
Wywołanie metody było nieoczekiwane. Na przykład metoda BCPInit nie była wywoływana przed wywołaniem tej metody. Występuje także, gdy operacja została przerwana za pomocą opcji BCP_OPTION_ABORT, a metoda BCPExec została wywołana później.
E_OUTOFMEMORY
Błąd z powodu braku pamięci.
DB_S_ENDOFROWSET
Operacja masowego kopiowania zakończyła się, a cały transfer danych został zakończony.
DB_S_ASYNCHRONOUS
Obecna partia wierszy została skopiowana. Ponownie wywołaj metodę BCPExec , aby przenieść kolejną partię.
DB_S_ERRORSOCCURRED
Podczas operacji kopiowania masowego występowały błędy, a niektóre wiersze mogły nie zostać skopiowane. Liczba błędów jest nadal mniejsza niż maksymalna dozwolona liczba błędów.
Zobacz też
IBCPSession (OLE DB)
Wykonywanie operacji kopiowania masowego