bcp_colfmt

Określa urządzenie źródłowe lub miejsce docelowe format danych w pliku użytkownika.Jeśli używany jako format urządzenie źródłowe, bcp_colfmt Określa, w formacie istniejącego pliku danych używane jako urządzenie źródłowe danych w kopiowanie masowe do SQL Server Tabela. Jeśli używany jako format miejsce docelowe, tworzony jest plik danych przy użyciu formatów kolumna z bcp_colfmt.

RETCODE bcp_colfmt (
        HDBC hdbc,
        INT idxUserDataCol,
        BYTE eUserDataType,
        INT cbIndicator,
        DBINT cbUserData,
        LPCBYTE pUserDataTerm,
        INT cbUserDataTerm,
        INT idxServerCol);

Argumenty

  • hdbc
    Czy dojścia połączenia ODBC włączona kopia w zbiorczej.

  • idxUserDataCol
    To liczba porządkowa kolumna w pliku danych użytkownika, dla których określono ich format.Pierwsza kolumna jest 1.

  • eUserDataType
    Jest to typ danych dla tej kolumna w pliku użytkownika.Jeśli różni się od typu danych odpowiednich kolumn w bazie danych (tabelaidxServerColumn), kopiowanie masowe konwertuje dane, jeżeli jest to możliwe.

    SQL Server 2005 wprowadzone obsługę SQLXML i SQLUDT tokenów typu danych w eUserDataType parametr.

    The eUserDataType parameter is enumerated by the SQL Server data type tokens in sqlncli.h, not the ODBC C data type enumerators.Na przykład, można określić ciąg znaków, ODBC SQL_C_CHAR, należy wpisać przy użyciu SQL Server-SQLCHARACTER określonego typu.

    Aby określić reprezentacji danych domyślnych dla SQL Server Typ danych zestaw tego parametru na wartość 0.

    Dla kopiowanie masowe z SQL Server do pliku gdy eUserDataType jest SQLDECIMAL lub SQLNUMERIC:

    • Jeśli urządzenie źródłowe kolumna nie jest Liczba dziesiętna or numeryczny, domyślna precyzja i Skala są używane.

    • Jeśli kolumna źródłowa jest Liczba dziesiętna or numeryczny, precyzji i skali kolumny źródłowej są używane.

  • cbIndicator
    Jest to, w bajtach wskaźnika długość/null kolumna danych.Ważny wskaźnik długość wartości to 0 (podczas korzystania z nie wskaźnik), 1, 2, 4 lub 8.

    Aby określić domyślne zbiorczej kopii wskaźnik użycia, należy ustawić dla tego parametru do SQL_VARLEN_DATA.

    Wskaźniki są wyświetlane w pamięci bezpośrednio przed żadnych danych, a w pliku danych, bezpośrednio przed danymi, do których się odnoszą.

    Jeżeli zastosowano więcej niż jeden sposób określenia długości kolumna pliku danych (na przykład wskaźnika oraz długość maksymalną kolumna, lub wskaźnika i sekwencji terminator), kopiowanie masowe wybiera ten, który powoduje najmniejszą ilość danych, w której są kopiowane.

    Pliki danych generowanych przez kopiowanie masowe podczas nie interwencji użytkownika ustawia format danych zawierają wskaźniki kolumna danych mogą być różne długości lub do kolumna można wprowadzać wartości NULL jako wartość.

  • cbUserData
    Jest maksymalna długość w bajtach kolumna's dane w pliku użytkownika, nie tym długość długość wskaźnik lub terminator.

    zestaw ting cbUserData do SQL_NULL_DATA wskazuje, że wszystkie wartości w danych pliku kolumna jest lub powinno być zestaw wartości null.

    Ustawienie cbUserData do SQL_VARLEN_DATA wskazuje, że system powinien określić długość danych w każdej kolumnie.W przypadku niektórych kolumn może to oznaczać czy wskaźnik null/długości zostanie wygenerowany poprzedzającą danych w kopii z SQL Server, lub które wskaźnika jest kopiowane do danych SQL Server.

    Dla SQL Server znak i typy danych binarnych cbUserData może być SQL_VARLEN_DATA, SQL_NULL_DATA, 0 lub niektóre wartość dodatnią.Jeśli cbUserData SQL_VARLEN_DATA, system używa wskaźnik długości, jeśli jest obecna lub sekwencji terminator do określenia długości danych.Jeśli są dostarczane i wskaźnik długości sekwencji terminator kopiowanie masowe używa jeden, wyniki w najmniejszą ilość danych, w której są kopiowane.Jeśli cbUserData SQL_VARLEN_DATA, typ danych jest SQL Server określony znak lub Typ binarny i wskaźnik długości ani sekwencji terminator, system zwróci komunikat o błędzie.

    Jeśli cbUserData jest równa 0 lub wartość dodatnią, system używa cbUserData jako dane maksymalną długość.Niemniej jednak, jeśli oprócz dodatnia cbUserData, podano sekwencji wskaźnik lub terminator długość, system Określa długość danych przy użyciu metoda, wyniki w najmniejszą ilość danych, w której są kopiowane.

    The cbUserData value represents the count of bytes of data.Jeśli dane znak jest reprezentowany przez szerokości znaków Unicode, a następnie dodatnia cbUserData parametr wartość reprezentuje liczbę znaków pomnożona przez rozmiar w bajtach) każdego znaku.

  • pUserDataTerm
    Czy sekwencja terminator ma być używany dla tej kolumna.Ten parametr jest przydatne głównie dla znaków typów danych, ponieważ wszystkie inne typy o stałej długości, lub, w odniesieniu do danych binarnych, wymagają wskaźnika o długości do dokładnie rejestrowana liczba bajtów obecnych.

    W celu uniknięcia kończące wyodrębnione dane lub wskazuje, że dane w pliku użytkownik nie jest zakończone, należy ustawić dla tego parametru na wartość NULL.

    Jeżeli zastosowano więcej niż jeden sposób określenia długości kolumna pliku użytkownika (na przykład terminator i wskaźnik długości, lub terminator i długość maksymalna kolumna), kopiowanie masowe wybiera ten, który powoduje najmniejszą ilość danych, w której są kopiowane.

    Interfejsu API kopiowanie masowe dokonuje konwersji znaków Unicode do MBCS zgodnie z wymaganiami.Należy uważać, aby zapewnić, że zarówno ciąg bajt terminator i długość ciągu bajt zestaw poprawnie.

  • cbUserDataTerm
    Wskazuje długość sekwencji terminator ma być używany dla tej kolumna, w bajtach.Jeśli terminator nie jest obecna lub żądane w danych, ustaw tę wartość na 0.

  • idxServerCol
    Jest to pozycja porządkowa kolumna w tabela bazy danych.Pierwsza liczba kolumn wynosi 1.Liczba porządkowa położenie kolumna jest zgłaszane przez SQLColumns.

    Jeśli ta wartość jest równa 0, kopiowanie masowe ignoruje kolumna w pliku danych.

Zwraca wartość

Powiodła się lub zakończyć się NIEPOWODZENIEM.

Remarks

The bcp_colfmt funkcja allows you to specify the user-file format for bulk copies.Dla kopiowanie masowe format zawiera następujące części:

  • Mapowanie pliku użytkownika kolumny do kolumn bazy danych.

  • Typ danych każdej kolumna pliku użytkownika.

  • Długość opcjonalne wskaźnika dla każdej kolumna.

  • Maksymalna długość danych kolumna plik użytkownika.

  • Opcjonalne zakończenie bajt sekwencji dla każdej kolumna.

  • Długość opcjonalne zakończenie sekwencji bajtów.

Każde wywołanie bcp_colfmt Określa format pliku użytkownika o jedną kolumna.Na przykład aby zmienić ustawienia domyślne dla trzech kolumn w pliku danych kolumna pięciu użytkowników, najpierw wywołać bcp_columns(5), a następnie wywołanie bcp_colfmt pięć razy z trzema tych wywołań ustawienie format niestandardowy.Dla pozostałych dwóch połączeń Ustawianie eUserDataType 0 i zestaw cbIndicator, cbUserData, and cbUserDataTerm 0 SQL_VARLEN_DATA i odpowiednio.Procedura ta kopiuje wszystkie pięć kolumn trzy formatowi niestandardowych i dwoma w formacie domyślnym.

Dla cbIndicator, wartość 8, aby wskazać typ dużej wartości jest obecnie prawidłowy.Jeśli prefiks zostanie określony pole, którego odpowiadającej jej kolumna jest nowego typu Maks, to zestaw tylko do 8.Aby uzyskać więcej informacji zobacz bcp_bind.

The bcp_columns funkcja must be called before any calls to bcp_colfmt.

Należy wywołać bcp_colfmt tylko jeden raz dla każdej kolumna w pliku użytkownika.

Wywołanie bcp_colfmt więcej niż jeden raz dla każdej kolumna plik użytkownika powoduje błąd.

Nie trzeba skopiować wszystkie dane w pliku użytkownika SQL Server Tabela. Aby pominąć kolumna, należy określić format danych dla kolumna, ustawianie idxServerCol parametr na 0.Jeśli chcesz pominąć kolumna, należy określić jego typu.

The bcp_writefmt funkcja can be used to persist the format specification.

Pomoc techniczna dla rozszerzonego Data i funkcje czas bcp_colfmt

Dla informacji aboutt on typy używanych z eUserDataType Parametr typu Data/Godzina, zobacz Zbiorcza Kopiuj zmiany dla daty rozszerzony / czas typy (OLE DB i ODBC).

Aby uzyskać więcej informacji zobaczData / czas ulepszenia (ODBC).

See Also

Reference