Aracılığıyla paylaş


IBCPSession::BCPInit (OLE DB)

Toplu kopyalama yapısı'nı başlatır, bazı hata denetimi yapar, verileri ve biçim dosya adları doğru olduğundan ve bunları açar doğrular.

HRESULT BCPInit( 
      const wchar_t *pwszTable,
      const wchar_t *pwszDataFile,
      const wchar_t *pwszErrorFile,
      int eDirection);

Remarks

The BCPInit yöntem should be called before any other bulk-copy yöntem.The BCPInit yöntem performs the necessary initializations for a toplu kopyalama of data between the iş istasyonu and SQL Server.

The BCPInit yöntem examines the structure of the database kaynak or hedef tablo, not the data file.Bu, her temel alan veri dosyası için veri biçimi değerleri belirtir sütun veritabanı tablosunda görünüm veya SELECT sonuç kümesi.Bu belirtim, varlığı veya bir uzunluk veya null göstergesi ve Sonlandırıcı bayt dizesi veri devamsızlık ve genişliği sabit uzunluklu veri türü, her sütunun veri türünü içerir.The BCPInit yöntem sets these values as follows:

  • Belirtilen veri türü, veritabanı tablosu, görünüm veya SELECT sonuç sütununun veri türü olan küme.Veri türü tarafından numaralandırılan SQL Server Belirtilen yerel veri türleri SQL Server Yerel istemci üstbilgi dosyası (sqlncli.h). Kendi BCP_TYPE_XXX desen değerlerdir.Verileri, bilgisayar formunda gösterilir.Diğer bir deyişle, verileri bir sütun tamsayı veri türü büyük dört bayt sırası ile temsil edilir- ya da küçük veri dosyasını oluşturan bilgisayara bağlı endian.

  • Uzunluğu sabit bir veritabanı veri türü, veri dosya veri uzunluğunun de düzeltilmiştir.(Örneğin, verileri işleyen bir toplu yöntemleri IBCPSession::BCPExec) verileri satır, veritabanında tablo, görünüm veya SELECT sütun listesi ile belirtilen veri uzunluğu aynı olması için veri dosyasındaki verilerin uzunluğunu bekleniyor ayrıştırılamadı.Örneğin, veri olarak tanımlanan bir veritabanı sütun için char(13) veri dosyasındaki her satır için 13 karakter temsil gerekir. Sabit uzunluklu veri ile null bir gösterge, öneki veritabanı sütun null değerlere izin verir.

  • Veri kopyalama işlemi sırasında SQL Server, veri dosyasını her biri için veri olmalıdır sütun veritabanı tablosunda. Veri kopyalama işlemi sırasında SQL Server, veritabanında tablo, görünüm veya SELECT sonuç tüm sütunlara veri küme veri dosyasına kopyalanır.

  • Veri kopyalama işlemi sırasında SQL Server, sıralı konumunu bir sütun veri dosyasındaki sütunu sıralı konumunu veritabanındaki aynı olmalıdır. tablo. Veri kopyalama işlemi sırasında SQL Server, BCPExec yöntem veritabanındaki sütun sıralı konumunu temel veri yerleştirir tablo.

  • Bir veritabanı veri türünü değişken uzunluğu (örneğin, ise varbinary(22)) veya bir veritabanı sütununa null değeri içerebilir, veri dosyasındaki verilerin uzunluğu/null bir göstergesi öneki. Gösterge genişliğini, veri türü ve toplu kopyalama sürümüne göre değişir.The IBCPSession::BCPControl yöntem option BCP_OPTION_FILEFMT provides compatibility between earlier bulk-copy data files and servers running later versions of SQL Server by indicating when the width of indicators in the data is narrower than expected.

Not

Bir veri dosyası için belirtilen veri biçimi değerleri değiştirmek için IBCPSession::BCPColumns and IBCPSession::BCPColFmt yöntemleri.

Toplu kopyalar SQL Server dizin veritabanı seçeneğini ayarlayarak içermeyen tablolar için iyileştirilmiş içine seçin / bulkcopy.

Bağımsız değişkenler

  • pwszTable[]
    Içine veya dışına kopyalanmak üzere veritabanı tablo adı.Adı, sahip adı veya bir veritabanı adı içerebilir.Örneğin, "pubs.username.titles", "pubs...Başlıklar","username.titles".

    EDirection bağımsız değişken ise küme BCP_DIRECTION_OUT için bir veritabanı görünümü adını pwszTable bağımsız değişken olabilir.

    EDirection bağımsız değişkeni için BCP_DIRECTION_OUT olarak ayarlanmışsa ve bir deyim kullanılarak belirtilen BCPControl önce yöntemBCPExec yöntem çaðrýlýr, pwszTable bağımsız değişken NULL olarak ayarlanmalıdır.

  • pwszDataFile[]
    Içine veya dışına kopyalanmak üzere kullanıcı dosya adı.

  • pwszErrorFile[]
    Bir tablo için bir kullanıcı dosya kopyalanamadı tüm satırları kopyalarını ilerleme durumu iletileri ve hata iletileri ile doldurulacak hata dosyası adı.If the pwszErrorFile argument is küme to NULL, no error file is used.

  • eDirection[]
    Kopyalama işlemi, yönünü BCP_DIRECTION_IN veya BCP_DIRECTION _OUT.Bir veritabanı tablosu için bir kullanıcı dosyasından bir kopyasını BCP_DIRECTION _IN gösterir; kullanıcı bir dosya için bir veritabanı tablosundan bir kopyasını BCP_DIRECTION _OUT gösterir.

Dönüş Kodu Değerleri

  • s_ok
    Yöntem başarılı oldu.

  • e_fail
    Sağlayıcıya özel bir hata oluştu ' ayrıntılı bilgi için kullanmak ISQLServerErrorInfo arabirim.

  • e_outofmemory
    Yetersiz bellek hatası.

  • e_invalidarg
    Bir veya daha fazla bağımsız değişken doğru belirtilmedi.Örneğin, geçersiz bir dosya adı belirtilmedi.