Udostępnij za pośrednictwem


bcp_setcolfmt

The bcp_setcolfmt funkcja supersedes the bcp_colfmt.Określając sortowanie kolumna bcp_setcolfmt funkcja musi być używana.

Ta funkcja zapewnia elastyczne rozwiązanie do określania formatu kolumna w zbiorczej operacji kopiowania.Służy do ustawiania atrybutów formatu poszczególnych kolumn.Każde wywołanie bcp_setcolfmt ustawia jeden atrybut format kolumna.

The bcp_setcolfmt funkcja specifies the urządzenie źródłowe or miejsce docelowe format of the data in a user file.Jeśli używany jako format urządzenie źródłowe, bcp_setcolfmt Określa, w formacie istniejącego pliku danych używane jako urządzenie źródłowe danych, danych w kopiowanie masowe do tabela na SQL Server. Jeśli używany jako format miejsce docelowe, tworzony jest plik danych przy użyciu formatów kolumna z bcp_setcolfmt.

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

Argumenty

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

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

  • Właściwość
    Czy jedno stałych właściwość.W tej tabela zdefiniowane są stałe właściwość.

    Właściwość

    Wartość

    Description

    BCP_FMT_TYPE

    BAJT

    Jest to typ danych dla tej kolumna w pliku użytkownika.Jeśli różni się od typu danych odpowiednich kolumna w tabela bazy danych kopiowanie masowe konwertuje dane w miarę możliwości.

    Parametr BCP_FMT_TYPE są wyliczane przez tokenów typ danych programu SQL Server w sqlncli.h, a nie moduły wyliczające typu danych ODBC C.Na przykład można określić ciąg znaków SQL_C_CHAR przy użyciu SQLCHARACTER wpisz specyficzne dla typu ODBC SQL Server.

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

    Dla kopiowanie masowe z programu SQL Server do pliku, gdy jest BCP_FMT_TYPE 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.

    BCP_FMT_INDICATOR_LEN

    ZAOKR.DO.CAŁK

    Jest to w bajtach wskaźnika (prefiks).

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

    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ść.

    BCP_FMT_DATA_LEN

    DBINT

    Wskazuje długość (długość kolumna) danych w bajtach

    Jest maksymalna długość w bajtach, dane te kolumna's w pliku użytkownika, z wyłączeniem długość długość wskaźnik lub terminator.

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

    Ustawianie BCP_FMT_DATA_LEN do SQL_VARLEN_DATA wskazuje, że system powinien określić długość danych w każdym kolumna.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 binarne typy danych, BCP_FMT_DATA_LEN może być SQL_VARLEN_DATA, SQL_NULL_DATA, 0 lub niektóre wartość dodatnią. Jeśli BCP_FMT_DATA_LEN SQL_VARLEN_DATA, system używa do określenia długości danych wskaźnik długości, jeśli jest obecna lub sekwencji terminator.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 BCP_FMT_DATA_LEN SQL_VARLEN_DATA, typ danych to 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żeli BCP_FMT_DATA_LEN wynosi 0 lub wartość dodatnią, system używa BCP_FMT_DATA_LEN jako dane maksymalną długość.Jednak jeśli oprócz BCP_FMT_DATA_LEN pozytywne, długość sekwencji wskaźnik lub terminator zostanie podana, system Określa długość danych przy użyciu metoda, które powoduje najmniejszą ilość danych, w której są kopiowane.

    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, aby terminator sekwencji (ANSI lub Unicode, odpowiednio) 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.

    BCP_FMT_SERVER_COL

    ZAOKR.DO.CAŁK

    Liczba porządkowa pozycję kolumna w bazie danych

    BCP_FMT_COLLATION

    LPCSTR

    last_media_number

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

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

Zwraca wartość

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

Remarks

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

BCP_FMT_SERVER_COL

BCP_FMT_DATA_LEN

BCP_FMT_TYPE

The bcp_setcolfmt 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_setcolfmt 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_setcolfmt pięć razy z trzema tych wywołań ustawienie format niestandardowy.Dla pozostałych dwóch wywołań, BCP_FMT_TYPE zestaw 0 i zestaw BCP_FMT_INDICATOR_LENGTH, BCP_FMT_DATA_LEN, a cbValue 0 SQL_VARLEN_DATA i odpowiednio.Procedura ta kopiuje wszystkie pięć kolumn trzy formatowi niestandardowych i dwoma w formacie domyślnym.

The bcp_columns funkcja must be called before calling bcp_setcolfmt.

Należy wywołać bcp_setcolfmt tylko jeden 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, które ustawienie parametru BCP_FMT_SERVER_COL 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_setcolfmt

Typy używanych z właściwością BCP_FMT_TYPE dla typów data i godziny są jak określono w Zbiorcza Kopiuj zmiany dla daty rozszerzony / czas typy (OLE DB i ODBC).

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

See Also

Reference