bcp_colfmt
Określa źródło lub miejsce docelowe format danych w pliku użytkownika.Kiedy jako format źródło bcp_colfmt Określa format istniejącego pliku danych używanego jako źródło 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.
Składnia
RETCODE bcp_colfmt (
HDBC hdbc,
INT idxUserDataCol,
BYTE eUserDataType,
INT cbIndicator,
DBINT cbUserData,
LPCBYTE pUserDataTerm,
INT cbUserDataTerm,
INT idxServerCol);
Argumenty
hdbc
kopiowanie masowe-włączone dojścia połączenia ODBC.idxUserDataCol
Jest to liczba porządkowa kolumna w pliku danych użytkownika, dla których określona jest format.Pierwsza kolumna ma wartość 1.eUserDataType
Jest to typ danych tej kolumna w pliku użytkownika.Jeśli nie jest typu danych odpowiednich kolumna w bazie danych ( tabelaidxServerColumn), kopiowanie masowe konwertuje dane, jeśli jest to możliwe.SQL Server 2005wprowadzone obsługę SQLXML i SQLUDT tokeny typu danych w eUserDataType parametr.
W eUserDataType Parametr ma typ wyliczeniowy przez SQL Server tokeny typu danych w sqlncli.h, nie ODBC C danych typu moduły wyliczające.Na przykład można określić znaków ciąg, ODBC SQL_C_CHAR, należy wpisać przy użyciu SQL Server-określonego typu SQLCHARACTER.
Aby określić domyślne reprezentację danych SQL Server , typ danych, zestaw tego parametru na wartość 0.
kopiowanie masowe z SQL Server do pliku, po eUserDataType jest SQLDECIMAL lub SQLNUMERIC:
Jeśli źródło kolumna nie jest Liczba dziesiętna lub numeryczne, domyślna precyzja i Skala są używane.
Jeślikolumna źródłojest Liczba dziesiętna lub numeryczne, precyzji i skalikolumna źródłosą używane.
cbIndicator
Jest długością w bajtach długość / wskaźniknull w kolumna danych.Nieprawidłowy wskaźnik długość wartości to 0 (używając żaden wskaźnik), 1, 2, 4 lub 8.Aby określić domyślne kopiowanie masowe wskaźnika wykorzystania, zestaw ten parametr SQL_VARLEN_DATA.
Wskaźniki pojawiają się w pamięci bezpośrednio przed żadnych 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 w co najmniej ilość danych kopiowanych wyniki .
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 wprowadzać wartości NULL jako wartość.
cbUserData
Jest maksymalną długość w bajtach danych tej kolumnaw pliku użytkownik nie tym długość długość wskaźnik lub terminator.Ustawienie cbUserData SQL_NULL_DATA wskazuje wszystkie wartości w danych kolumna pliku są lub powinny być zestaw na NULL.
Ustawienie cbUserData Aby SQL_VARLEN_DATA wskazuje, że system powinien określić długość danych w każdej kolumna.Niektórych kolumn, to może oznaczać, że długość / wskaźniknull jest generowany poprzedzającą danych na kopii z SQL Server, lub oczekiwanego wskaźnika danych skopiowanych do SQL Server.
Dla SQL Server znaków i typy danych binarnych cbUserData może być SQL_VARLEN_DATA, SQL_NULL_DATA, 0 lub niektóre wartość dodatnią.Jeżeli cbUserData jest SQL_VARLEN_DATA, system używa do określenia długości danych długość wskaźnik, jeśli jest obecna lub sekwencji terminatora.Jeżeli podany wskaźnik długości i sekwencji terminatora, kopiowanie masowe używa jednego wyniki w co najmniej ilość danych kopiowanych.Jeżeli cbUserData SQL_VARLEN_DATA danych jest typ 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żeli cbUserData 0 lub wartość dodatnią, system używa cbUserData jako długość maksymalna danych.Jednakże, jeżeli oprócz dodatnią cbUserData, pod warunkiem długość sekwencji terminatora lub wskaźnik, system Określa długość danych przy użyciu metoda wyniki w co najmniej ilość danych kopiowanych.
W cbUserData wartość reprezentuje liczbę bajtów danych.Jeśli dane znak jest reprezentowany przez szerokości znaków Unicode, a następnie dodatnią cbUserData wartość parametru reprezentuje liczbę znaków pomnożona przez rozmiar w bajtach każdego znaku.
pUserDataTerm
Jest sekwencji terminatora ma być używany dla tej kolumna.Ten parametr jest użyteczny głównie do znakowych typów danych, ponieważ wszystkie inne typy o stałej długości, lub w przypadek danych binarnych, wymagają wskaźnika długości dokładne rejestrowanie liczba bajtów obecnych.W celu uniknięcia kończące wyodrębnione dane lub aby wskazać, że dane użytkownika plik nie jest zakończone, zestaw tego parametru na wartość NULL.
Użycie więcej niż jeden sposób określenia długości kolumna pliku użytkownika (takich jak terminator wskaźnik długość lub terminator i długość maksymalna kolumna ) kopiowanie masowe wybiera jeden w co najmniej ilość danych kopiowanych wyniki .
kopiowanie masoweAPI wykonuje Unicode-do-MBCS konwersji znaków zgodnie z wymaganiami. Należy uważać, do zapewnienia, że bajt terminator ciąg i długość bajtowy ciąg są zestaw poprawnie.
cbUserDataTerm
Jest długością w bajtach, sekwencji terminatora ma być używany dla tej kolumna.Jeśli nie terminator jest obecna lub pożądana w danych, zestaw tę wartość na 0.idxServerCol
Jest numerem porządkowym kolumna w tabelabazy danych.Pierwsza liczba kolumna wynosi 1.Pozycja porządkowa kolumna jest zgłaszane przez SQLColumns.Jeśli ta wartość jest równa 0, kopiowanie masowe ignoruje kolumna w pliku danych.
Zwraca
Kończą się pomyślnie lub nie powiedzie się.
Uwagi
W bcp_colfmt funkcja pozwala określić format pliku użytkownika dla kopii zbiorczego.kopiowanie masoweformat zawiera następujące części:
Mapowanie pliku użytkownika kolumny do kolumny bazy danych.
Typ danych kolumnapliku użytkownika.
Długość opcjonalne wskaźnika dla każdej kolumna.
Maksymalna długość danych na plik użytkownika kolumna.
Opcjonalne zakończenie bajt sekwencji dla każdej kolumna.
Długość opcjonalne zakończenie bajtowa sekwencja.
Każde wywołanie bcp_colfmt Określa format pliku użytkownika jednej kolumna.Na przykład, aby zmienić ustawienia domyślne dla trzech kolumn w pięciu - plik danych użytkownikakolumna , pierwsze wywołanie bcp_columns(5), a następnie wywołać bcp_colfmt pięć razy z trzema wywołuje ustawienie formatu niestandardowego.Dla pozostałych dwóch wywołań zestaw eUserDataType 0 i zestaw cbIndicator, cbUserDataoraz cbUserDataTerm 0, SQL_VARLEN_DATA i 0 odpowiednio.Ta procedura umożliwia skopiowanie wszystkich pięciu kolumn trzy dostosowany format i dwóch z formatem domyślnym.
Dla cbIndicator, jest prawidłową wartość 8, aby wskazać typ dużą wartość.Prefiks jest określony dla pole , których kolumna jest nowym typem max, może tylko być zestaw na 8.Aby uzyskać szczegółowe informacje, zobacz bcp_bind.
W bcp_columns funkcja musi być wywołana przed wszelkie wywołania bcp_colfmt.
Musisz wywołać bcp_colfmt tylko jeden raz dla każdej kolumna w pliku użytkownika.
Wywoływanie bcp_colfmt więcej niż raz dla dowolnego pliku użytkownika kolumna powoduje błąd.
Nie trzeba skopiować wszystkie dane w pliku użytkownika do SQL Server tabela.Aby pominąć kolumna, należy określić format danych dla kolumna, ustawianie idxServerCol Parametr na 0.Jeśli chcesz pominąć kolumnanależy określić jego typu.
Bcp_writefmtfunkcja może być użyta do utrwalania specyfikacji formatu.
bcp_colfmt obsługa Enhanced Data i czas funkcje
Dla informacji aboutt on typy używanych z eUserDataType parametru data/czas typy Zobacz Zmiany kopii zbiorczego dla typów Enhanced Data/Godzina (OLE DB i ODBC).
Aby uzyskać więcej informacji, zobacz temat Data/Godzina ulepszenia (ODBC).