IBCPSession::BCPInit (OLE DB)
Zainicjowanie struktury kopiowanie masowe, wykonuje niektóre sprawdzanie błędów, sprawdza nazwy plików danych i formatowanie są poprawne, a następnie otwiera je.
HRESULT BCPInit(
const wchar_t *pwszTable,
const wchar_t *pwszDataFile,
const wchar_t *pwszErrorFile,
int eDirection);
Remarks
The BCPInit metoda should be called before any other bulk-copy metoda.The BCPInit metoda performs the necessary initializations for a kopiowanie masowe of data between the stacja robocza and SQL Server.
The BCPInit metoda examines the structure of the database urządzenie źródłowe or miejsce docelowe tabela, not the data file.Określa wartości danych w formacie pliku danych oparte na każdym kolumna w tabela bazy danych, widoku lub SELECT spowodować zestaw.Specyfikacja ta zawiera typ danych każdej kolumna, obecności lub nieobecności długości lub wartość zerowa wskaźnika i terminator bajt ciągów w danych i szerokość typy danych o stałej długości.The BCPInit metoda sets these values as follows:
Określony typ danych jest typ danych kolumna w tabela bazy danych, widok lub zestaw wyników SELECT.Typ danych jest wyliczane przez SQL Server macierzyste typy danych określonych w SQL Server Plik nagłówka macierzystym klient (sqlncli.h). Ich wartości są w strukturze BCP_TYPE_XXX.Dane jest reprezentowany w postaci komputera.Oznacza to, dane z kolumna danych typu Liczba całkowita jest reprezentowane przez sekwencję czwartego bajtu big- lub little-endian opartych na komputerze, na którym utworzono plik danych.
Jeśli typ danych bazy danych jest stała długość, plik danych również jest stała długość.Metody masowego kopiowania, które przetwarzają dane (na przykład IBCPSession::BCPExec) analizuje Oczekiwana długość danych w pliku danych jest taka sama, jak długość danych określonych w tabela bazy danych, widoku lub liście kolumn SELECT wierszy danych.Na przykład dane dla kolumna w bazie danych określone jako char(13) musi być reprezentowana przez 13 znaków dla każdego wiersza danych w pliku. Dane o stałej długości, może poprzedzać 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, widok lub zestaw wyników SELECT są kopiowane do pliku danych.
Podczas kopiowania danych do SQL Server, liczba porządkowa położenie kolumna w pliku danych musi być taki sam, jak liczba porządkowa pozycję kolumna w tabela bazy danych. Podczas kopiowania danych z SQL Server, BCPExec metoda umieszcza dane w zależności od porządkowa pozycję 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 jest poprzedzona za pomocą wskaźnika długość/null. Szerokość wskaźnika zależy od typu danych i wersja kopiowanie masowe.The IBCPSession::BCPControl metoda option BCP_OPTION_FILEFMT provides compatibility between earlier bulk-copy data files and servers running later versions of SQL Server by indicating when the width of indicators in the data is narrower than expected.
Uwaga
Aby zmienić wartości format danych określony dla pliku danych, należy użyć IBCPSession::BCPColumns and IBCPSession::BCPColFmt metody.
Kopii zbiorczego SQL Server może zostać zoptymalizowana dla tabel, które nie zawierają indeksów, 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.Nazwa może zawierać nazwy bazy danych lub nazwa właściciela.Na przykład "pubs.username.titles", "pubs...tytuły","username.titles".Jeśli argument eDirection zestaw do BCP_DIRECTION_OUT, argument pwszTable może być nazwa widok bazy danych.
Jeśli argument eDirection zestaw BCP_DIRECTION_OUT i SELECT instrukcja jest określany przy użyciu BCPControl metoda przed BCPExec wywołaniu metoda pwszTable Argument musi być zestaw wartości null.
pwszDataFile[w]
Nazwa pliku użytkownika mają być kopiowane do lub.pwszErrorFile[w]
Nazwa pliku błędu, który ma być wypełnione postęp wiadomości, komunikaty o błędach i kopiuje wszystkie wiersze, które nie mogły zostać skopiowane z pliku użytkownika do tabela.Jeśli pwszErrorFile argument ma wartość NULL, używany jest plik nie błędów.eDirection[w]
Kierunek operacji kopiowania _OUT BCP_DIRECTION_IN lub BCP_DIRECTION._IN BCP_DIRECTION wskazuje kopię pliku użytkownika do tabela bazy danych; _OUT BCP_DIRECTION wskazuje kopiowanie z tabela bazy danych do plików użytkownika.
Wartości kodów powrotnych
S_OK
metoda powiodło się.E_FAIL
Wystąpił błąd specyficzny dla dostawca „ szczegółowe informacje, należy użyć ISQLServerErrorInfo interfejs.E_OUTOFMEMORY
Błąd limitu pamięci.E_INVALIDARG
Co najmniej jeden z argumentów nie została poprawnie określona.Na przykład podano nieprawidłową nazwę pliku.