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