bcp_control
Zmienia domyślne ustawienia dla różnych parametrów kontroli kopiowanie masowe między plikiem i SQL Server.
Składnia
RETCODE bcp_control (
HDBC hdbc,
INT eOption,
void* iValue);
Argumenty
dbc
Jest kopiowanie masowe-włączone dojścia połączenia ODBC.eOption
Jest jedną z następujących czynności:BCPABORT
Zatrzymuje operację masowego kopiowania, który jest już w toku.Wywołanie bcp_control z eOption z BCPABORT z innego wątek, aby zatrzymać uruchomionego kopiowanie masowe operacji.IValue parametr jest ignorowany.BCPBATCH
Jest to liczba wierszy na partia.Wartością domyślną jest 0, co oznacza wszystkie wiersze w tabela, podczas wyodrębniania danych lub wszystkie wiersze w pliku danych użytkownika podczas kopiowania danych do SQL Server.Wartość mniejszą niż 1 przywraca domyślne BCPBATCH.BCPFILECP
iValue zawiera numer strona kodowa dla pliku danych.Można określić numer strona kodowa, takich jak 1252 lub 850 lub jedną z następujących wartości:BCPFILE_ACP: dane w pliku jest strona kodowa systemu Microsoft Windows ® klient.
BCPFILE_OEMCP: dane w pliku jest strona kodowa OEM klient (domyślnie).
BCPFILE_RAW: Strona kodowa jest dane w pliku SQL Server.
BCPFILEFMT
Numer wersja formatu pliku danych.This can be 80 (SQL Server 2000), 90 (SQL Server 2005), or 100 (SQL Server 2008 or SQL Server 2008 R2).domyślną jest 100.Jest to przydatne do eksportowania i importowania danych w formatach, które zostały poparte starszej wersja serwera.Na przykład, aby importowanie danych, uzyskaną z kolumna tekstu w SQL Server 2000 serwera do varchar(max) kolumna w SQL Server 2005 lub nowszego serwera należy określić 80.Podobnie jeśli określisz 80 podczas eksportowania danych z varchar(max) kolumna, zostanie on zapisany tak samo, jak tekst kolumna są zapisywane w SQL Server 2000 format i mogą być importowane do kolumna tekstu SQL Server 2000 serwera.BCPFIRST
Jest pierwszy wiersz danych do pliku lub tabela do skopiowania.Wartością domyślną jest 1; wartość mniejszą niż 1 przywrócenie domyślnego tej opcji.BCPFIRSTEX
Określa pierwszy wiersz tabela bazy danych, aby skopiować do pliku danych dla BCP operacji.BCP w operacjach określa się w pierwszym wierszu pliku danych, aby skopiować do tabela bazy danych.
iValue Parametr oczekuje się adres podpisana liczba całkowita 64-bitowych zawierających wartości.Mogą być przekazywane do BCPFIRSTEX wartość maksymalna jest 2 ^ 63-1.
BCPFMTXML
Określa, że plik formatu wygenerowany powinien być w formacie XML.Jest wyłączona domyślnie.Pliki w formacie XML zapewniają większą elastyczność, ale z niektórymi dodać ograniczenia.Na przykład można nie określić prefiks i terminatora pole jednocześnie, było możliwe w formacie starszych wersji plików.
Ostrzeżenie
Pliki w formacie XML są tylko obsługiwane, gdy SQL Server jest instalowany wraz z SQL Server macierzystego klienta.
BCPHINTS
iValue zawiera wskaźnik ciąg znaków SQLTCHAR.Określa ciąg skierowana SQL Server wskazówki przetwarzania bulk copy lub Transact-SQL instrukcji, która zwraca zestaw wyników.Jeśli Transact-SQL instrukcji określono, że zwraca więcej niż jeden wynik ustawiona, wszystkie zestawy wyników po pierwszym są ignorowane.Aby uzyskać więcej informacji na temat wskazówek dotyczących przetwarzania masowego kopiowania, zobacz bcp narzędzie.BCPKEEPIDENTITY
Po iValue ma wartość PRAWDA, określa, że kopiowanie masowe funkcji Wstaw wartości danych dostarczanych dla SQL Server określonych kolumn z ograniczenia tożsamości.Plik wejściowy musi podać wartości dla kolumny tożsamości.Jeśli nie jest zestaw, generowane są nowe wartości tożsamości wstawionych wierszy.Wszelkie dane znajdujące się w pliku dla kolumny tożsamości jest ignorowana.BCPKEEPNULLS
Określa, czy wartości puste dane w pliku są konwertowane na wartooci NULL w SQL Server tabela.Gdy iValue ma wartość PRAWDA, wartości puste zostaną przekonwertowane na wartości NULL w SQL Server tabela.Domyślnie jest puste wartości są konwertowane na wartość domyślną dla kolumna w SQL Server tabela, jeśli istnieje domyślna.BCPLAST
Jest ostatni wiersz do skopiowania.Domyślnie jest skopiowanie wszystkich wierszy; wartość mniejszą niż 1 przywrócenie domyślnego tej opcji.BCPLASTEX
Określa ostatni wiersz tabela bazy danych, aby skopiować do pliku danych dla BCP operacji.Określa ostatni wiersz pliku danych, aby skopiować do tabela bazy danych dla BCP w operacjach.
iValue Parametr oczekuje się adres podpisana liczba całkowita 64-bitowych zawierających wartości.Mogą być przekazywane do BCPLASTEX wartość maksymalna jest 2 ^ 63-1.
BCPMAXERRS
Jest to liczba błędów przed kopiowanie masowe operacja kończy się niepowodzeniem.Wartością domyślną jest 10; wartość mniejszą niż 1 przywrócenie domyślnego tej opcji.Bulk copy nakłada maksymalnie 65 535 błędy.Próba zestaw tę opcję, aby wartość większą niż 65 535 wyniki jest opcja zestaw do 65 535.BCPODBC
Gdy ma wartość TRUE, określa, że datetime i smalldatetime wartości zapisane w formacie znak będzie używać ODBC sygnatury czasowej escape sekwencji prefiks i sufiks.Opcja BCPODBC dotyczy tylko BCP_OUT.Gdy ma wartość FALSE, datetime wartość reprezentująca dnia 1 stycznia 1997 r. jest konwertowana na ciąg znaków: 1997-01-01 00:00:00.000.Gdy ma wartość TRUE, tym samym datetime wartość jest reprezentowana jako: {ts ' 00:00:00.000 1997-01-01 "}.
BCPROWCOUNT
Zwraca liczbę wierszy dotyczy operacji BCP bieżącą (lub ostatnią).BCPTEXTFILE
Gdy ma wartość TRUE, określa, że plik danych jest plikiem tekstowym, a nie plik binarny.Jeśli plik jest plikiem tekstowym, BCP Określa, czy jest Unicode sprawdzając znacznika bajt Unicode w pierwsze dwa bajty pliku danych.BCPUNICODEFILE
Gdy ma wartość TRUE, określa plik wejściowy jest plikiem Unicode.iValue
Is the value for the specified eOption.iValue is an integer (LONGLONG) value cast to a void pointer to allow for future expansion to 64 bit values.
Zwraca
POMYŚLNIE lub nie powiedzie się.
Uwagi
Ta funkcja ustawia różne parametry formantu kopiowanie masowe operacji, w tym liczbę błędów dozwolone przed anulowaniem kopiowanie masowe, numery pierwszej i ostatniej wierszy do skopiowania pliku danych i wielkość partia.
Ta funkcja umożliwia również określić wybierz instrukcja luzem podczas kopiowania z SQL Server zestaw wyników wybierz.Ustaw eOption BCPHINTS i zestaw iValue do wskaźnika zawierające wybierz ciąg SQLTCHAR instrukcja.
Te parametry kontroli mają znaczenie tylko podczas kopiowania między plikiem użytkownika i SQL Server tabela.Ustawienia parametrów kontroli nie mają wpływu na wiersze kopiowane do SQL Server z bcp_sendrow.
Przykład
// Variables like henv not specified.
SQLHDBC hdbc;
DBINT nRowsProcessed;
// Application initiation, get an ODBC environment handle, allocate the
// hdbc, and so on.
...
// Enable bulk copy prior to connecting on allocated hdbc.
SQLSetConnectAttr(hdbc, SQL_COPT_SS_BCP, (SQLPOINTER) SQL_BCP_ON,
SQL_IS_INTEGER);
// Connect to the data source, return on error.
if (!SQL_SUCCEEDED(SQLConnect(hdbc, _T("myDSN"), SQL_NTS,
_T("myUser"), SQL_NTS, _T("myPwd"), SQL_NTS)))
{
// Raise error and return.
return;
}
// Initialize bulk copy.
if (bcp_init(hdbc, _T("address"), _T("address.add"), _T("addr.err"),
DB_IN) == FAIL)
{
// Raise error and return.
return;
}
// Set the number of rows per batch.
if (bcp_control(hdbc, BCPBATCH, (void*) 1000) == FAIL)
{
// Raise error and return.
return;
}
// Set file column count.
if (bcp_columns(hdbc, 1) == FAIL)
{
// Raise error and return.
return;
}
// Set the file format.
if (bcp_colfmt(hdbc, 1, 0, 0, SQL_VARLEN_DATA, '\n', 1, 1)
== FAIL)
{
// Raise error and return.
return;
}
// Execute the bulk copy.
if (bcp_exec(hdbc, &nRowsProcessed) == FAIL)
{
// Raise error and return.
return;
}
printf_s("%ld rows processed by bulk copy.", nRowsProcessed);