IBCPSession::BCPColFmt (ole db)
Program değişkenleri arasında bağlama oluşturur ve SQL Server sütunlar.
Sözdizimi
HRESULT BCPColFmt(
DBORDINAL idxUserDataCol,
int eUserDataType,
int cbIndicator,
int cbUserData,
BYTE *pbUserDataTerm,
int cbUserDataTerm,
DBORDINAL idxServerCol);
Açıklamalar
The BCPColFmt method is used to create a binding between BCP data file fields and SQL Server columns.Onu, uzunluğu, türü, Sonlandırıcı ve önek uzunluğu sütun parametre alır ve her biri tek tek alanlar için bu özellikleri ayarlar.
Bu yöntem, kullanıcı etkileşimli mod seçerse, iki kez çağrılır; bir kez için küme göre varsayılan değerleri (sunucu sütun türüne göre yapılır) ve bir kez için sütun biçimini küme biçimi seçeneği her sütun için etkileşimli mod sırasında seçilen istemcinin sütun tipine göre.
Etkileşimli olmayan modda da, bunu yalnızca bir kez için sütun başına düşen denir küme karakter veya yerel türü ve her sütun tipini küme sütun ve satır sonlandırıcılar.
The BCPColFmt method allows you to specify the user-file format for bulk copies.Toplu kopyalama için bir biçim aşağıdaki bölümleri içerir:
Veritabanı sütunlarının bir eşleme dosyası kullanıcı alanlarından.
Her kullanıcı dosyası alan veri türü.
Her alan için isteğe bağlı göstergesi uzunluğu.
Veri dosyası kullanıcı başına en fazla uzunluğu alan.
İsteğe bağlı Sonlandırıcı bayt sırası her alan için.
İsteğe bağlı Sonlandırıcı bayt sırası uzunluğu.
Her çağrı için BCPColFmt bir kullanıcı dosya alan biçimini belirtir.Örneğin, üç beş alan kullanıcı veri dosyası alanları için varsayılan ayarları değiştirmek için ilk çağrı BCPColumns(5)ve sonra call BCPColFmt beş kat ile üç özel ayarlama bu çağrıları.Kalan iki aramalarda, küme eUserDataType bcp_type_default ve ayarlamak için cbIndicator, cbUserData, ve cbUserDataTerm BCP_VARIABLE_LENGTH, 0 ve 0 sırasıyla.Bu yordam tüm beş sütun özelleştirilmiş biçiminizin üç ve iki varsayılan biçimi kopyalar.
Not
The IBCPSession::BCPColumns method must be called before any calls to BCPColFmt.Çağırması gerekir BCPColFmt kullanıcı dosyasındaki her sütun için bir kez.Arayan BCPColFmt birden çok kez için tüm kullanıcı dosyası sütun bir hataya neden olur.
Bir kullanıcı dosyasındaki tüm verileri kopyalamak sahip bir SQL Server tablo.Bir sütuna geçmek için idxServerCol parametresi 0 olarak ayarlanması sütun için veri biçimini belirtin.alan atlamak için yine de düzgün çalışabilmesi yöntem için tüm bilgileri gerekir.
NotIBCPSession::BCPWriteFmt işlev aracılığıyla sağlanan biçim belirtimi devam ettirmek için kullanılabilir BCPColFmt.
Bağımsız değişkenler
idxUserDataCol[de]
Kullanıcının veri dosyasında alan dizini.eUserDataType[de]
Kullanıcının veri dosyasındaki alan veri türü.Kullanılabilir veri türleri listelenir SQL Server yerel istemci üstbilgi dosyası (sqlncli.h) bcp_type_xxx biçimi, örneğin, BCP_TYPE_SQLINT4.bcp_type_default değer belirtilmezse, tablo olarak aynı tür kullanın veya sütun türünü görüntülemek sağlayıcı çalışır.Toplu kopyalama işlemleri dışında SQL Server ve bir dosya halinde, eUserDataType bağımsız değişken ise BCP_TYPE_SQLDECIMAL veya BCP_TYPE_SQLNUMERIC:Kaynak sütun ondalık veya sayısal değilse, varsayılan duyarlık ve ölçek kullanılır.
Kaynak sütun ondalık veya sayısal değilse, duyarlık ve ölçek kaynak sütunun kullanılır.
cbIndicator[de]
Önek uzunluğu alan için.BCP_PREFIX_DEFAULT varsayılandır.0, 1, 2, 4 Ve 8 önek uzunlukları geçerli olur.8 Bir önek boyutunu belirtmek için sıkça kullanılır alan parçalı.Bu, etkili bir şekilde toplu kopyalama büyük değer türü sütunlar için kullanılır.cbUserData[de]
En fazla uzunluğunu, bayt, bu alan verilerini kullanıcı dosyasındaki herhangi bir uzunluk göstergesi veya Sonlandırıcı uzunluğunu dahil edilmez.Ayar cbUserData için bcp_length_null tüm değerleri veri alanları dosya gösterir ya da null olarak küme olması gerekir.Ayar cbUserData için BCP_LENGTH_VARIABLE sistem her alan için veri uzunluğunu belirlemek gösterir.Bazı alanlar için bu uzunluğu/null göstergesi üzerinde bir kopyadan verileri gelmesini oluşturulur gelebilir SQL Server, ya da kopyalanan verilerdeki göstergesi beklenen SQL Server.
İçin SQL Server karakter ve ikili veri türleri cbUserData BCP_LENGTH_VARIABLE, bcp_length_null, 0 veya bazı pozitif bir değer olabilir.If cbUserData is BCP_LENGTH_VARIABLE, the system uses either the length indicator, if present, or a terminator sequence to determine the length of the data.Uzunluk göstergesi hem de bir sonlandırıcı sırası kullanılmazsa, kopyalanan veri en az tutarı sonuçlar bir toplu kopyalama kullanır.If cbUserData is BCP_LENGTH_VARIABLE, the data type is a SQL Server character or binary type, and if neither a length indicator nor a terminator sequence is specified, the system returns an error message.
If cbUserData is 0 or a positive value, the system uses cbUserData as the maximum data length.Ancak, eğer, pozitif bir ek olarak cbUserData, uzunluk göstergesi veya Sonlandırıcı sırası sağlanır, kopyalanan veri en az tutarı sonuçlar yöntem kullanarak sistem veri uzunluğunu belirler.
The cbUserData value represents the count of bytes of data.Karakter verileri geniş Unicode karakter ve ardından bir pozitif tarafından temsil edilen, cbUserData parametre değeri her karakterin bayt cinsinden boyutu ile çarpılır karakter sayısını temsil eder.
pbUserDataTerm[size_is] []
Alan için kullanılacak Sonlandırıcı sırası.Bu parametre, çoğunlukla sabit uzunlukta ya da diğer türleri, çünkü veri türleri karakter için yararlıdır durum ikili verileri, uzunluk bayt var doğru olarak kaydetmek için bir göstergedir gerektirir.Ayıklanan veri sonlandırma önlemek için ya da kullanıcı dosyasındaki verileri sonlandırılmadığından, göstermek için küme Bu parametre null.
Kullanıcı dosyası sütun uzunluğunu belirten birden fazla anlamına gelir (bir Sonlandırıcı ve uzunluğu göstergesi, ya da bir Sonlandırıcı ve en fazla sütun uzunluğu gibi) kullandıysanız, kopyalanan veri en az tutarı sonuçlar bir toplu kopyalama seçer.
Toplu kopyalama API gerektiği gibi Unicode mbcs karakter dönüşümü gerçekleştirir.Dikkat çekilen, sonlandırıcı bayt dizesi hem bayt dize uzunluğunu sağlamak için küme doğru.
cbUserDataTerm[de]
Uzunluğu, bayt cinsinden sütun için kullanılacak Sonlandırıcı sırası.Hiçbir Sonlandırıcı var veya istenen veri olması durumunda küme bu değer 0.idxServerCol[de]
Sütunu sıralı konumunu veritabanındaki tablo.İlk sütun numarası 1'dir.Position'ın bir sütun tarafından bildirilen ısütunsInfo::Getsütunbilgi veya benzer yöntemler.Bu değer 0 ise, toplu kopyalama veri dosyası alan yoksayar.
Dönüş Kodu Değerleri
S_OK
Yöntem başarılı oldu.E_FAIL
Sağlayıcı belirli bir hata oluştu, ayrıntılı bilgileri kullanım için ISQLServerErrorInfo arabirim.E_UNEXPECTED
Beklenmeyen yöntem çağrısı.Örneğin, IBCPSession::BCPInit yöntem, bu yöntem çağırmadan önce değil çağrıldı.E_INVALIDARG
Bağımsız değişken geçersizdi.E_OUTOFMEMORY
Yetersiz bellek hatası.