Bagikan melalui


IBCPSession::BCPExec (Penyedia OLE DB Klien Asli)

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Penting

SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). Penyedia SQL Server Native Client OLE DB (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server ke depannya.

Melakukan operasi penyalinan massal.

Sintaks

  
HRESULT BCPExec(   
      DBROWCOUNT *pRowsCopied);  

Keterangan

Metode BCPExec menyalin data dari file pengguna ke tabel database atau sebaliknya, tergantung pada nilai parameter eDirection yang digunakan dengan metode IBCPSession::BCPInit .

Sebelum memanggil BCPExec, panggil metode BCPInit dengan nama file pengguna yang valid. Kegagalan untuk melakukannya menghasilkan kesalahan. Satu-satunya pengecualian adalah jika kueri akan digunakan untuk operasi penyalinan massal. Dalam hal ini tentukan NULL untuk nama tabel dalam metode BCPInit lalu tentukan kueri menggunakan opsi BCP_OPTION_HINTS.

Metode BCPExec adalah satu-satunya metode penyalinan massal yang cenderung luar biasa untuk waktu yang lama. Oleh karena itu, ini adalah satu-satunya metode penyalinan massal yang mendukung mode asinkron. Untuk menggunakan mode asinkron, atur properti sesi khusus penyedia SSPROP_ASYNCH_BULKCOPY ke VARIANT_TRUE sebelum memanggil metode BCPExec . Properti ini tersedia dalam kumpulan properti DBPROPSET_SQLSERVERSESSION. Untuk menguji penyelesaian, panggil metode BCPExec dengan parameter yang sama. Jika salinan massal belum selesai, metode BCPExec mengembalikan DB_S_ASYNCHRONOUS. Ini juga mengembalikan dalam argumen pRowsCopied jumlah status jumlah baris yang telah dikirim atau diterima dari server. Baris yang dikirim ke server tidak diterapkan hingga akhir batch tercapai.

Argumen

pRowsCopied[out]
Penunjuk ke DWORD. Metode BCPExec mengisi DWORD dengan jumlah baris yang berhasil disalin. Jika argumen pRowsCopied diatur ke NULL, argumen diabaikan oleh metode BCPExec.

Mengembalikan Nilai Kode

S_OK
Metode berhasil.

E_FAIL
Terjadi kesalahan khusus penyedia; untuk informasi terperinci, gunakan antarmuka ISQLServerErrorInfo .

E_UNEXPECTED
Panggilan ke metode tidak terduga. Misalnya, metode BCPInit tidak dipanggil sebelum memanggil metode ini. Juga terjadi jika operasi telah dibatalkan melalui menggunakan opsi BCP_OPTION_ABORT, dan metode BCPExec dipanggil setelahnya.

E_OUTOFMEMORY
Kesalahan kehabisan memori.

DB_S_ENDOFROWSET
Operasi penyalinan massal selesai, dan semua transfer data selesai.

DB_S_ASYNCHRONOUS
Batch baris saat ini telah disalin. Panggil metode BCPExec lagi untuk mentransfer batch berikutnya.

DB_S_ERRORSOCCURRED
Terjadi kesalahan selama operasi salin massal, dan beberapa baris mungkin belum disalin. Jumlah kesalahan masih kurang dari kesalahan maksimum yang diizinkan.

Lihat Juga

IBCPSession (OLE DB)
Melakukan Operasi Salin Massal