Udostępnij za pośrednictwem


IBCPSession::BCPInit (OLE DB)

Inicjuje struktury kopii luzem, wykonuje niektóre sprawdzanie błędów, sprawdza, czy dane i plik formatu nazwy są poprawne, a następnie otwiera je.

Składnia

HRESULT BCPInit( 
      const wchar_t *pwszTable,
      const wchar_t *pwszDataFile,
      const wchar_t *pwszErrorFile,
      int eDirection);

Uwagi

BCPInit powinna zostać wywołana metoda przed jakąkolwiek inną metodę masowego kopiowania.BCPInit metoda wykonuje niezbędne inicjalizacji kopiowanie masowe danych między stacja robocza i SQL Server.

BCPInit metoda sprawdza struktury bazy danych źródło lub tabela miejsce docelowe, a nie plik danych.Określa wartości danych w formacie pliku danych na podstawie każdej kolumna w widoku tabela bazy danych, lub zaznacz zestaw wyników.Niniejsza specyfikacja obejmuje typ danych każdej kolumna, obecności lub braku długości lub wartość null wskaźnika i terminatora bajt ciągi danych i szerokość typy danych o stałej długości.BCPInit metoda ustawia te wartości w następujący sposób:

  • Określony typ danych jest typ danych kolumna w tabela bazy danych, widok lub zestaw wyników wybierz.Typ danych jest wyliczana przez SQL Server macierzyste typy danych określonych w SQL Server pliku nagłówka Native Client (sqlncli.h).Ich wartości są w strukturze BCP_TYPE_XXX.Dane są reprezentowane w postaci komputera.Oznacza to, że dane z kolumna danych typu Liczba całkowita jest reprezentowane przez sekwencję czterech bajtów big-little-endian lub oparte na komputerze, na którym utworzono plik danych.

  • Typ danych bazy danych jest stałej długości, plik danych również jest stała długość.Metody masowego kopiowania, które przetwarzają dane (na przykład IBCPSession::BCPExec) analizy Oczekiwana długość danych w pliku danych identyczne długość danych określonych w tabela bazy danych, widoku lub kolumna listy wierszy danych.Na przykład dane dla kolumna bazy danych, określone jako char(13) musi być reprezentowana przez 13 znaków dla każdego wiersza danych w pliku.O stałej długości danych może być prefiksem wskaźnik null jeśli zezwala na wartości null kolumna bazy danych.

  • Podczas kopiowania danych do SQL Server, plik danych musi mieć dane dla każdej kolumna w tabela bazy danych.Podczas kopiowania danych z SQL Server, dane ze wszystkich kolumn w tabela bazy danych, widoku lub zestaw wyników wybierz są kopiowane do pliku danych.

  • Podczas kopiowania danych do SQL Server, Pozycja porządkowa w pliku danych kolumna muszą być identyczne z numerem porządkowym kolumna w tabela bazy danych.Podczas kopiowania danych z SQL Server, BCPExec metoda umieszcza dane oparte na pozycji porządkowej kolumna w tabela bazy danych.

  • Jeśli typ danych bazy danych jest zmiennej długości (na przykład varbinary(22)) lub jeśli kolumna bazy danych może zawierać wartości null, dane w pliku danych zawiera wskaźnik długości i null.Szerokość wskaźnika zależy od typu danych i wersja kopiowanie masowe.IBCPSession::BCPControl opcji Metoda BCP_OPTION_FILEFMT zapewnia zgodność między plikami wcześniej masowego kopiowania danych i serwery z systemem nowszych wersjach SQL Server przez wskazującą, kiedy szerokości wskaźników danych jest węższy niż oczekiwano.

Ostrzeżenie

Aby zmienić formatowanie danych wartości określone dla pliku danych, użyj IBCPSession::BCPColumns i IBCPSession::BCPColFmt metody.

Luzem kopii SQL Server można zoptymalizować dla tabel, które nie zawierają indeksy, ustawiając opcję bazy danych Wybierz do / Kopiuj zbiorczo można.

Argumenty

  • pwszTable[w]
    Nazwa tabela bazy danych, które mają być kopiowane do lub z.Nazwa może zawierać nazwy bazy danych lub właściciel.Na przykład "pubs.username.titles", "pubs...tytuły","username.titles".

    Jeśli eDirection argument zestaw do BCP_DIRECTION_OUT, pwszTable argument może być nazwa widoku bazy danych.

    Jeśli eDirection argument zestaw BCP_DIRECTION_OUT i wybierz instrukcja jest określona za pomocą BCPControl metody przed BCPExec wywoływana jest metoda, pwszTable argument musi być zestaw na NULL.

  • pwszDataFile[w]
    Nazwa pliku użytkownika mają być kopiowane do lub z.

  • pwszErrorFile[w]
    Nazwa pliku błędu wypełniona postęp wiadomości, komunikaty o błędach i kopiuje wszystkie wiersze, które nie można skopiować pliku użytkownika do tabela.Jeśli pwszErrorFile argument jest zestaw wartość null, jest używany nie błąd pliku.

  • eDirection[w]
    Kierunek operacji kopiowania _OUT BCP_DIRECTION_IN lub BCP_DIRECTION.BCP_DIRECTION _IN wskazuje kopię pliku użytkownika do tabela bazy danych; BCP_DIRECTION _OUT wskazuje kopiowanie z tabela bazy danych do pliku użytkownika.

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, należy użyć ISQLServerErrorInfo interfejs.

  • BŁĄD E_OUTOFMEMORY
    Błąd braku pamięci.

  • E_INVALIDARG
    Jeden lub więcej argumentów nie została poprawnie określona.Na przykład podano nieprawidłową nazwę pliku.

Zobacz także

Koncepcje

Inne zasoby