bcp_control

Zmienia domyślne ustawienia dla różnych parametrów kontroli kopiowanie masowe między plikiem a SQL Server.

RETCODE bcp_control (
        HDBC hdbc,
        INT eOption,
        void* iValue);

Argumenty

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

  • eOption
    Na przykład, gdy w definicji widoku odwołuje się do tabela, widoku, jako obiekt odwołujący się zależy od tabela, do którego istnieje odwołanie obiektu.

  • BCPABORT
    Zatrzymuje operacją masowego kopiowania, które jest już w toku.Wywołanie bcp_control with an eOption BCPABORT z innego wątek, aby zatrzymać uruchomione zbiorczego kopiowania operacji.The iValue parameter is ignored.

  • BCPBATCH
    To liczba wierszy na partię.Wartością domyślną jest 0, co oznacza wszystkie wiersze w tabela, gdy dane są wyodrębniane lub wszystkich wierszy w pliku danych użytkownika, podczas kopiowania danych do SQL Server. Wartość mniejszą niż 1 resetuje BCPBATCH do ustawień domyślnych.

  • BCPFILECP
    iValue zawiera numer strona kodowa dla pliku danych.Można określić numer strona kodowa, takie jak 1252 lub 850 lub jedną z następujących wartości:

    BCPFILE_ACP: dane w pliku znajduje się w strona kodowa systemu Microsoft Windows ® klient.

    BCPFILE_OEMCP: dane w pliku jest strona kodowa OEM klient (ustawienie domyślne).

    BCPFILE_RAW: dane w pliku znajduje się w stronie kodowej SQL Server.

  • BCPFILEFMT
    Numer wersja na format pliku danych.Może to być 70 (SQL Server 7.0), 80 ()SQL Server 2000), 90 ()SQL Server 2005), lub 100 ()SQL Server 2008). wartością domyślną jest 100, a wskazuje, że plik znajduje się w SQL Server 2008 Format. Jest to przydatne do eksportowania i importowania danych w formatach, które są obsługiwane przez wcześniejszą wersja serwera.Na przykład, aby importowane dane zostały otrzymane z kolumna tekstu SQL Server 2000 serwer w varchar(max) kolumnaSQL Server 2005 lub nowszego serwera, należy określić 80. Podobnie jeśli określono 80 podczas eksportowania danych z varchar(max) kolumnie, zostanie on zapisany tak samo, jak tekst kolumn są zapisywane w SQL Server 2000 Formatowanie i mogą być importowane do kolumna tekstu SQL Server 2000 serwer.

  • BCPFIRST
    To pierwszy wiersz danych do pliku lub tabela do skopiowania.Wartość domyślna wynosi 1; wartość mniejszą od 1 do domyślnego resetuje tę opcję.

  • BCPFIRSTEX
    Określa pierwszy wiersz tabela bazy danych, aby skopiować do pliku danych BCP działaniach.

    W przypadku BCP w operacjach Określa pierwszy wiersz pliku danych, aby skopiować do tabela bazy danych.

    The iValue parameter is expected to be the address of a signed 64-bit integer containing the value.Maksymalna wartość, które mogą być przekazywane do BCPFIRSTEX wynosi 2 ^ 63-1.

  • BCPFMTXML
    Określa, że wygenerowany plik formatu powinny być w formacie XML.To jest domyślnie wyłączona.

    Pliki w formacie XML zapewnia większą elastyczność, ale z niektórymi dodać ograniczenia.Na przykład można nie określić prefiks i terminator pole jednocześnie, co było możliwe w starszych plików w formacie.

    Uwaga

    Pliki w formacie XML są tylko kiedy obsługiwana SQL Server jest instalowany razem z SQL Server Macierzysta klient.

  • BCPHINTS
    iValue zawiera wskaźnika SQLTCHAR znaków ciąg znaków.Określa ciąg, skierowane, albo SQL Server masowego kopiowania przetwarzania wskazówki lub języka Transact-instrukcja języka SQL które zwraca zestaw wyników. Jeśli instrukcja języka Transact-SQL jest określony, która zwraca więcej niż jeden zestaw wyników, wszystkie wyniki Ustawia po pierwsze, są ignorowane.Aby uzyskać więcej informacji na temat wskazówek dotyczących przetwarzania masowego kopiowania zobacz Narzędzie BCP.

  • BCPKEEPIDENTITY
    Kiedy iValue ma wartość PRAWDA, określa, że funkcje kopiowanie masowe wstawić wartości danych podany dla SQL Server kolumny zdefiniowana z ograniczeniem tożsamości. Plik wejściowy musi podać wartości dla kolumny identyfikacji.Jeśli ta opcja nie jest ustawiona, nowe wartości tożsamości są generowane wstawionych wierszy.Wszelkie dane znajdujące się w pliku dla kolumn identyfikacji jest ignorowana.

  • BCPKEEPNULLS
    Określa, czy wartości pustych danych w pliku są konwertowane na wartości NULL w SQL Server Tabela. Kiedy iValue ma wartość PRAWDA, wartości puste są konwertowane na wartości NULL w SQL Server Tabela. Ustawieniem domyślnym jest puste wartości są konwertowane na wartość domyślną dla kolumna SQL Server Tabela, jeśli istnieje wartość domyślną.

  • BCPLAST
    To ostatni wiersz do skopiowania.Wartość domyślna to wszystkie wiersze mają zostać skopiowane, wartość mniejszą od 1 do domyślnego resetuje tę opcję.

  • BCPLASTEX
    Określa ostatni wiersz tabela bazy danych, aby skopiować do pliku danych BCP działaniach.

    W przypadku BCP w operacjach Określa ostatni wiersz pliku danych, aby skopiować do tabela bazy danych.

    The iValue parameter is expected to be the address of a signed 64-bit integer containing the value.Maksymalna wartość, które mogą być przekazywane do BCPLASTEX wynosi 2 ^ 63-1.

  • BCPMAXERRS
    To liczba błędów upłynąć przed zbiorcza operacja kopiowania nie powiedzie się.Wartość domyślna wynosi 10; wartość mniejszą od 1 do domyślnego resetuje tę opcję.kopiowanie masowe nakłada maksymalnie 65 535 błędów.Podjęto próbę zestaw tę opcję, aby wartość większą niż 65 535 powoduje, przy czym opcja zestaw do 65 535.

  • BCPODBC
    Gdy wartość właściwości równa TRUE oznacza, określa, że Data/Godzina and Smalldatetime wartości zapisanych w formacie znak będzie używać ODBC sygnatury czasowej anulowania sekwencji prefiks i sufiks.Opcja BCPODBC dotyczy tylko BCP_OUT.

    Gdy ma wartość FAŁSZ, Data/Godzina wartość reprezentująca 1 stycznia 1997 roku jest konwertowany na ciąg znaków: 1997-01-01 00:00:00.000.Jeśli to PRAWDA, to samo Data/Godzina wartość jest reprezentowana jako: {00:00:00.000 1997-01-01 ts' '}.

  • BCPROWCOUNT
    Zwraca liczbę wierszy dotyczy operacji BCP bieżącą (lub ostatnią).

  • BCPTEXTFILE
    Gdy wartość właściwości równa TRUE oznacza, określa, że plik danych pliku tekstowego, a nie plik binarny.Jeśli plik jest plikiem tekstowym, BCP określa niezależnie od tego, czy jest kodowana w standardzie Unicode sprawdzając znaczników bajtów Unicode w dwóch pierwszych bajtów pliku danych.

  • BCPUNICODEFILE
    Gdy wartość właściwości równa TRUE oznacza, 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 wartość

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

Remarks

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 wiersze, które mają zostać skopiowane z pliku danych i rozmiaru wsadu.

Ta funkcja służy również do określenia instrukcja SELECT w przypadku zbiorczego kopiowania z SQL Server zestaw wyników SELECT. Zestaw eOption do BCPHINTS i zestaw iValue wskaźnika na ciąg SQLTCHAR zawierające instrukcję SELECT.

Te parametry formantu są istotne tylko wtedy, gdy kopiowanie między plikiem użytkownika oraz SQL Server Tabela. Ustawienia parametrów kontroli nie mają wpływu na kopiowany do wierszy 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);

See Also

Reference