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).