Aracılığıyla paylaş


bcp_control

Değişiklikleri parametrelerini çeşitli varsayılan ayarlarını kontrol bir toplu kopyalama arasında dosya ve SQL Server.

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

Bağımsız değişkenler

  • hdbc
    Toplu kopyalama etkin ODBC bağlantı tanıtıcısı mı.

  • eOption
    Aşağıdakilerden birini mi:

  • bcpabort
    Zaten sürmekte olan bir toplu işlemi durdurur.Arama bcp_control with an eOption çalışan bir toplu durdurmak için başka bir iş parçacığı tarafından BCPABORT, işlem kopyalayın. The iValue parameter is ignored.

  • bcpbatch
    Toplu iş başına satır sayısıdır.Ya da tüm satırları belirten 0 ' dır ve varsayılan bir tablo verileri ayıkladı veya verileri için kopyalandığında kullanıcı verileri tüm satırları, dosya bir SQL Server. 1'Den küçük BIR değer, varsayılan BCPBATCH sıfırlar.

  • bcpfilecp
    iValue veri dosyası için kod sayfa numarasını içerir.Kod sayfa 1252 gibi sayı 850 ya bu değerlerden birini belirtebilirsiniz:

    bcpfile_acp: istemci Microsoft Windows ® kod sayfa dosya verilerindedir.

    bcpfile_oemcp: istemci (varsayılan) OEM kod sayfa dosya verilerindedir.

    bcpfile_raw: kod sayfa dosya verideSQL Server.

  • bcpfilefmt
    Veri dosyası biçimi sürüm numarası.Bu, 70 (SQL Server 7.0) olabilir () 80SQL Server 2000), 90 ()SQL Server 2005), veya 100 ()SQL Server 2008). 100 varsayılandır ve dosyanın içinde olduğunu gösterir. SQL Server 2008 Format. Bu, verme ve sunucu önceki sürüm tarafından desteklenen biçimlerde veri almak için kullanışlıdır.Örneğin, bir metin sütununun elde içeri aktarma verileri için bir SQL Server 2000 Sunucu bir varchar(max) sütunundaSQL Server 2005 veya daha yeni bir sunucu 80 belirtmeniz gerekir. Benzer şekilde, 80 veri verilirken belirttiğiniz bir varchar(max) sütun, yalnızca metin sütunları kaydedilir gibi$ kaydedilirSQL Server 2000 biçimlendirme ve bir metin sütun alınabilir bir SQL Server 2000 Sunucu.

  • bcpfirst
    Veri dosyası veya kopyalamak için tablo ilk satırdır.Varsayılan değer 1'dir; 1'den küçük bir değere sıfırlar bu seçenek varsayılan.

  • bcpfirstex
    Işlem dışı BCP için veritabanı ilk satırı belirtir tablo veri dosyasına kopyalayın.

    Operasyonlar, BCP için veritabanı tablosuna kopyalamak için veri dosyasının ilk satırı belirtir.

    The iValue parameter is expected to be the address of a signed 64-bit integer containing the value.Geçirilen BCPFIRSTEX için en büyük değer 2'dir ^ 63-1.

  • bcpfmtxml
    Oluşturulan biçimi dosyası, XML biçiminde olması gerektiğini belirtir.Bunu varsayılan olarak kapalıdır.

    XML biçimi dosyaları büyük esneklik sağlar, ancak bazı kısıtlamalar eklendi.Örneğin, öneki ve bir alan için bir sonlandırıcı, eski biçim dosyaları mümkün olduğu belirtebileceğiniz değil.

    Not

    XML biçimi yalnızca dosyalar ne zaman desteklenen SQL Server ile birlikte yüklenir SQL Server Yerel istemci.

  • bcphints
    iValue SQLTCHAR karakter dizesi işaretçisi içerir.Belirtilen dize ya da belirtir. SQL Server toplu kopyalama ipuçlarının ya da bir sonuç döndüren bir Transact-SQL deyimni işlerken küme. Sonra ilk alınmaz, bir Transact-SQL deyim, birden çok sonuç kümesi verir belirtilirse, tüm sonuç ayarlar.Toplu işlem ipuçları hakkında daha fazla bilgi için bkz: Kullanımıbcp yardımcı programı.

  • bcpkeepidentity
    Ne zaman iValue DOğRU ise, toplu kopyalama işlevleri, için sağlanan veri değerlerini eklemek belirtir.SQL Server bir kimlik kısıtlaması ile tanımlanmış sütunlar. Giriş dosyası, kimlik sütunlarının değerleri girmeniz gerekir.Bu seçenek ayarlanmazsa, yeni kimlik değerleri eklenen satırlar için oluşturulur.Kimlik sütunları için dosyada var olan verileri göz ardı edilir.

  • bcpkeepnulls
    Dosya boş veri değerleri NULL değerlere dönüştürülür olup olmadığını belirtir SQL Server TABLO. Ne zaman iValue DOğRU ise, boş değerler NULL değerine dönüştürülür SQL Server TABLO. Sütun için bir varsayılan değere dönüştürülecek boş değerler için varsayılandır SQL Server tablo Varsayılan varsa.

  • bcplast
    Kopyalanacak son satırı olarak belirtilir.Varsayılan değer tüm satırlara kopyalamak için 1'den küçük bir değere sıfırlar bu seçenek varsayılan.

  • bcplastex
    Işlem dışı BCP için veritabanının son satırı belirtir tablo veri dosyasına kopyalayın.

    Operasyonlar, BCP için veritabanı tablosuna kopyalamak için veri dosyasının son satırı belirtir.

    The iValue parameter is expected to be the address of a signed 64-bit integer containing the value.Geçirilen BCPLASTEX için en büyük değer 2'dir ^ 63-1.

  • bcpmaxerrs
    Toplu kopyalama işlemi başarısız olmadan önce izin verilen hata sayısıdır.Varsayılan değer 10'dir; 1'den küçük bir değere sıfırlar bu seçenek varsayılan.Toplu kopyalama, en çok 65.535 hataları uygular.Bu seçenek için bir değer seçeneği olan 65.535 sonuçlar büyük küme girişimi 65. 535'e ayarlayın.

  • bcpodbc
    TRUE olduğunda, belirtir. DateTime and smalldatetime değerleri karakter biçiminde kaydedilmiş ODBC zaman damgası çıkış sırası önek ve sonek kullanır.BCPODBC seçeneği, yalnızca BCP_OUT için de geçerlidir.

    FALSE'olduğunda, bir DateTime değeri, 1 Ocak 1997 gösteren karakter dizesi olarak dönüştürülür: 1997-01-01 00:00:00.000.Ne zaman, aynı TRUE DateTime değeri olarak gösterilir: {ts' 1997-01-01 00:00:00.000 '}.

  • bcprowcount
    Geçerli (veya en son) BCP işlem tarafından etkilenen satırların sayısını verir.

  • bcptextfile
    TRUE olduğunda veri dosyası bir ikili dosya yerine bir metin dosyasını belirtir.Dosyayı bir metin dosyası, BCP, Unicode veri dosyasının ilk iki baytı içinde Unicode bayt işaretçiyi denetleyerek olup olmadığını belirler.

  • bcpunicodefile
    TRUE olduğunda giriş dosyası Unicode dosyası belirtir.

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

Verir

BAŞARıLı veya BAŞARıSıZ.

Remarks

Bu işlev, toplu işlem, toplu kopyalama, bir veri dosyası ve toplu iş boyutu kopyalamak için ilk ve son satır numaralarını iptal etmeden önce izin verilen hatalarının sayısını da dahil olmak üzere çeşitli denetim parametrelerini ayarlar.

Bu işlev, aynı zamanda toplu kopyalama, deyim belirtmek için kullanılır SQL Server Sonuç küme, bir SELECT. küme eOption BCPHINTS ve kümeiValue deyim içeren bir SQLTCHAR dize işaretçisi için.

Bu denetim yalnızca arasında bir kullanıcı dosyayı kopyalarken anlamlı parametreleridir ve bir SQL Server TABLO. Parametre ayarlarını denetlemek için kopyalanan satırların üzerinde hiçbir etkisi yoktur... SQL Server With bcp_sendrow.

Örnek

// 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