Udostępnij za pośrednictwem


bcp_setcolfmt

Bcp_setcolfmt zastępuje funkcja bcp_colfmt.Określając sortowanie kolumna bcp_setcolfmt należy użyć funkcja.

Ta funkcja zapewnia elastyczne podejście do określania formatu kolumna w kopiowanie masowe operacji.Jest używane do zestaw atrybuty formatu poszczególnych kolumn.Każde wywołanie bcp_setcolfmt ustawia jeden kolumna format atrybutu.

Bcp_setcolfmt określa funkcję źródło lub miejsce docelowe format danych w pliku użytkownika.Gdy używany jako format źródła bcp_setcolfmt Określa format istniejącego pliku danych używane jako źródło danych, danych kopiowanie masowe do tabela w SQL Server.Jeśli używany jako format miejsce docelowe, tworzony jest plik danych przy użyciu formatów kolumna z bcp_setcolfmt.

Składnia

RETCODE bcp_setcolfmt (
        HDBC hdbc,
        INT field,
        INT property,
        void* pValue,
        INT cbValue);

Argumenty

  • hdbc
    Jest kopiowanie masowe-włączone dojścia połączenia ODBC.

  • pole
    Jest to numer kolumna porządkowych, dla którego jest właściwość zestaw.

  • właściwość
    Jest jedną z właściwość stałych.Właściwość stałe są zdefiniowane w tej tabela.

    Właściwość

    Wartość

    Opis

    BCP_FMT_TYPE

    BAJT

    Jest to typ danych tej kolumna w pliku użytkownika.Jeśli odpowiedni typ danych kolumna w tabela bazy danych kopiowanie masowe konwertuje dane, jeśli jest to możliwe.

    Parametr BCP_FMT_TYPE jest wyliczany przez tokeny typ danych SQL Server w sqlncli.h zamiast moduły wyliczające typu danych ODBC C.Na przykład można określić ciąg znaków SQL_C_CHAR za pomocą SQLCHARACTER wpisz specyficzne dla typu ODBC SQL Server.

    Aby określić domyślne reprezentację danych SQL Server typu danych, zestaw tego parametru na wartość 0.

    Dla kopiowanie masowe z programu SQL Server do pliku, gdy BCP_FMT_TYPE jest SQLDECIMAL lub SQLNUMERIC:

    • Jeśli źródło kolumna nie jest dziesiętny lub numeryczne, domyślna precyzja i Skala są używane.

    • Jeśli źródło kolumna jest dziesiętny lub numeryczne, precyzji i skali źródło kolumny są używane.

    BCP_FMT_INDICATOR_LEN

    ZAOKR.DO.CAŁK

    Jest długością w bajtach wskaźnika (przedrostkowo).

    Jest długością w bajtach, wskaźnik długości i null kolumna danych.Nieprawidłowy wskaźnik długość wartości to 0 (używając żaden wskaźnik), 1, 2 lub 4.

    Aby określić domyślne luzem kopii wskaźnika wykorzystania, zestaw ten parametr SQL_VARLEN_DATA.

    Wskaźniki pojawiają się w pamięci bezpośrednio przed danych oraz w pliku danych bezpośrednio przed danymi, do których mają zastosowanie.

    Jeżeli zastosowano więcej niż jeden sposób określenia długości kolumna pliku danych (na przykład wskaźnik i długość maksymalna kolumna lub wskaźnika i sekwencji terminatora), kopiowanie masowe wybiera jeden z wyniki w ilości co najmniej kopiowane dane.

    Pliki danych generowanych przez kopiowanie masowe, gdy żadna interwencja użytkownika ustawia format danych zawierają wskaźniki danych kolumna mogą się różnić długością lub kolumna można zaakceptować wartości NULL jako wartość.

    BCP_FMT_DATA_LEN

    DBINT

    Jest długością w bajtach (długość kolumna) danych

    Jest maksymalną długość w bajtach danych tej kolumna w pliku użytkownika, nie włączając długość długość wskaźnik lub terminator.

    zestaw BCP_FMT_DATA_LEN do SQL_NULL_DATA wskazuje wszystkie wartości w danych kolumna pliku są lub powinien być ustawiony na wartość NULL.

    Ustawienie BCP_FMT_DATA_LEN do SQL_VARLEN_DATA wskazuje, że system powinien określić długość danych w każdym kolumna.Dla niektórych kolumn, może to oznaczać że wskaźnik długości i null jest generowany poprzedzającą danych na kopii z SQL Server, lub oczekiwanego wskaźnika w danych skopiowanych do SQL Server.

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

    Jeśli BCP_FMT_DATA_LEN jest 0 lub wartość dodatnią, system używa BCP_FMT_DATA_LEN jako maksymalna długość danych.Jednak jeśli, oprócz pozytywne BCP_FMT_DATA_LEN, długość sekwencji wskaźnik lub końcówkę, system Określa długość danych za pomocą metoda, wyniki w ilości co najmniej kopiowane dane.

    Wartość BCP_FMT_DATA_LEN reprezentuje liczbę bajtów danych.Jeśli dane znak jest reprezentowany przez szerokości znaków Unicode, dodatnia wartość parametru BCP_FMT_DATA_LEN reprezentuje liczbę znaków pomnożona przez rozmiar w bajtach każdego znaku.

    BCP_FMT_TERMINATOR

    LPCBYTE

    Wskaźnik terminator sekwencji (ANSI lub Unicode, odpowiednio) ma być używany dla tej kolumna.Ten parametr jest użyteczny głównie dla znaku, typy danych, ponieważ wszystkie inne typy są stałej długości, lub w przypadek danych binarnych, wymagają wskaźnika długości dokładne rejestrowanie liczby bajtów obecnych.

    Aby uniknąć kończące wyodrębnione dane lub aby wskazać, że dane w pliku użytkownika nie jest zakończone, zestaw tego parametru na wartość NULL.

    Jeżeli zastosowano więcej niż jeden sposób określenia długości kolumna pliku użytkownika (takich jak terminator wskaźnik długości, lub terminator i długość maksymalna kolumna), kopiowanie masowe wybiera jeden z wyniki w ilości co najmniej kopiowane dane.

    kopiowanie masowe API wykonuje konwersję znaków Unicode do MBCS wymagane.Należy zachować ostrożność w ciąg bajt terminator i długość ciąg bajt były zestaw poprawnie.

    BCP_FMT_SERVER_COL

    ZAOKR.DO.CAŁK

    Pozycja porządkowa kolumna w bazie danych

    BCP_FMT_COLLATION

    LPCSTR

    Nazwa sortowania.

  • pValue
    Jest wskaźnik do wartości do kojarzenia z Właściwość.Dzięki temu każda właściwość format kolumn do zestaw indywidualnie.

  • cbvalue
    Jest to długość buforu właściwość w bajtach.

Zwraca

POMYŚLNIE lub nie powiedzie się.

Uwagi

Ta funkcja zastępuje bcp_colfmt funkcji.Wszystkie funkcje bcp_colfmt w bcp_setcolfmt funkcja.Ponadto obsługa sortowanie kolumna jest również dostępna.Jest zalecane, następujące atrybuty formatu kolumna zestaw w kolejności podanej poniżej:

BCP_FMT_SERVER_COL

BCP_FMT_DATA_LEN

BCP_FMT_TYPE

Bcp_setcolfmt funkcja pozwala określić format pliku użytkownika kopie luzem.Dla kopiowanie masowe format zawiera następujące części:

  • Mapowanie pliku użytkownika kolumny do kolumny 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 bajtowa sekwencja.

Każde wywołanie bcp_setcolfmt Określa format dla jednej kolumna pliku użytkownika.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łać bcp_setcolfmt pięć razy z trzema wywołań ustawienie niestandardowego formatu.Dla pozostałych dwóch połączeń zestaw BCP_FMT_TYPE, 0, i zestaw BCP_FMT_INDICATOR_LENGTH, BCP_FMT_DATA_LEN, i cbValue 0, SQL_VARLEN_DATA i 0 odpowiednio.Ta procedura umożliwia skopiowanie wszystkich pięciu kolumn, trzy z niestandardowego formatu i dwóch z formatem domyślnym.

Bcp_columns funkcja musi być wywołana przed wywoływaniem bcp_setcolfmt.

Musisz wywołać bcp_setcolfmt raz dla każdej właściwość każdej kolumna w pliku użytkownika.

Nie trzeba skopiować wszystkie dane w pliku użytkownika do tabela programu SQL Server.Aby pominąć kolumna, należy określić format danych dla kolumna, ustawienie parametru BCP_FMT_SERVER_COL na 0.Jeśli chcesz pominąć kolumna, należy określić jego typu.

Bcp_writefmt funkcja może być używana do utrwalania specyfikacji formatu.

bcp_setcolfmt obsługa Enhanced Data i czas funkcje

Typy używanych z właściwością BCP_FMT_TYPE dla data /czas typy są jak określono w Zmiany kopii zbiorczego dla typów Enhanced Data/Godzina (OLE DB i ODBC).

Aby uzyskać więcej informacji, zobacz Data/Godzina ulepszenia (ODBC).

Zobacz także

Odwołanie