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.