Aracılığıyla paylaş


IBCPSession::BCPExec (OLE DB)

Toplu kopyalama işlemi gerçekleştirir.

HRESULT BCPExec( 
      DBROWCOUNT *pRowsCopied);

Remarks

The BCPExec yöntem copies data from a user file to a database tablo or vice versa, depending on the value of the eDirection parameter used with the IBCPSession::BCPInit yöntem.

Önce arama BCPExec, call the BCPInit yöntem geçerli bir kullanıcı bir dosya adı.Bunu yapmak için başarısızlık, hatayla sonuçlanır.Tek özel durum bir sorgu için bir toplu kopyalama işlemi dışında olmasıdır.Bu durumda tablo adı NULL belirtmek BCPInit yöntem ve sonra BCP_OPTION_HINTS seçeneğini kullanarak sorguyu belirtin.

The BCPExec yöntem is the only toplu kopyalama yöntem that is likely to be outstanding for any length of saat.Bu nedenle yalnızca olan toplu olarak eşzamanlı olmayan modu destekleyen bir kopyalama yöntem.Zaman uyumsuz bir modu kullanacak biçimde küme önce arama sağlayıcısı belirli bir oturum özelliği SSPROP_ASYNCH_BULKCOPY VARIANT_TRUE için BCPExec yöntem.Bu özellik, DBPROPSET_SQLSERVERSESSION özelliği kümesinde kullanılabilir.Tamamlanma sınamak için , arama BCPExec yöntem ile aynı parametreleri.Toplu kopyalama henüz tamamlanmadı, BCPExec yöntem DB_S_ASYNCHRONOUS döndürür.Ayrıca, döndürür pRowsCopied gönderilen veya sunucudan alınan satır sayısını durum sayımını bağımsız değişkeni. Bir toplu iş sonuna ulaşıldı kadar sunucuya gönderilen satırları bağımlı değildir.

Bağımsız değişkenler

  • pRowsCopied[Çıkış]
    DWORD için BIR işaretçi.The BCPExec yöntem fills the DWORD with the number of rows successfully copied.If the pRowsCopied argument is küme to NULL, it is ignored by the BCPExec yöntem.

Dönüş Kodu Değerleri

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

  • e_fail
    Ayrıntılı bilgi için sağlayıcıya özgü bir hata oluştu;'nı kullanmak ISQLServerErrorInfo arabirim.

  • e_unexpected
    Yöntem çağrısı beklenmiyordu.Örneğin, BCPInit yöntem, bu yöntem çağırmadan önce çağrılmadı.Ayrıca BCP_OPTION_ABORT seçeneğini kullanarak ile işlem iptal edildi saptanmışsa ve BCPExec yöntem, daha sonra çağrıldı.

  • e_outofmemory
    Yetersiz bellek hatası.

  • db_s_endofrowset
    Toplu kopyalama işlemi tamamlandı ve veri aktarımı tamamlandı.

  • db_s_asynchronous
    Cari toplu iş iş işlemin satırları yeniden kopyalandı.Call BCPExec yöntem sonraki toplu iş iş yeniden aktarmak.

  • db_s_errorsoccurred
    Toplu kopyalama işlemi sırasında hatalar oluştu ve bazı satırlar değil kopyalanmış.Hata sayısı izin verilen en fazla hataları hala küçüktür.