IBCPSession::BCPControl (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.
Mengatur opsi untuk operasi penyalinan massal.
Sintaks
HRESULT BCPControl(
int eOption,
void *iValue);
Keterangan
Metode BCPControl mengatur berbagai parameter kontrol untuk operasi penyalinan massal termasuk jumlah kesalahan yang diizinkan sebelum membatalkan salinan massal, jumlah baris pertama dan terakhir untuk disalin dari file data, dan ukuran batch.
Metode ini juga digunakan untuk menentukan pernyataan SELECT yang akan digunakan saat menyalin data secara massal dari SQL Server. Anda dapat mengatur argumen eOption ke argumen BCP_OPTION_HINTS dan iValue agar memiliki penunjuk ke string karakter lebar yang berisi pernyataan SELECT.
Nilai yang mungkin untuk eOption adalah:
Opsi | Deskripsi |
---|---|
BCP_OPTION_ABORT | Menghentikan operasi penyalinan massal yang sudah berlangsung. Anda dapat memanggil metode BCPControl dengan argumen eOption BCP_OPTION_ABORT dari utas lain untuk menghentikan operasi penyalinan massal yang sedang berjalan. Argumen iValue diabaikan. |
BCP_OPTION_BATCH | Jumlah baris per batch. Defaultnya adalah 0, yang menunjukkan semua baris dalam tabel saat data sedang diekstrak, atau semua baris dalam file data pengguna saat data sedang disalin ke SQL Server. Nilai kurang dari 1 mengatur ulang BCP_OPTION_BATCH ke default. |
BCP_OPTION_DELAYREADFMT | Boolean, jika diatur ke true, akan menyebabkan IBCPSession::BCPReadFmt dibaca saat eksekusi. Jika false (default), IBCPSession::BCPReadFmt akan segera membaca file format. Kesalahan urutan akan terjadi jika BCP_OPTION_DELAYREADFMT benar dan Anda memanggil IBCPSession::BCPColumns atau IBCPSession::BCPColFmt. Kesalahan urutan juga akan terjadi jika Anda memanggil IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE)) setelah panggilan IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) dan IBCPSession::BCPWriteFmt.Untuk informasi selengkapnya, lihat Penemuan Metadata. |
BCP_OPTION_FILECP | Argumen iValue berisi jumlah halaman kode untuk file data. Anda dapat menentukan jumlah halaman kode, seperti 1252 atau 850, atau salah satu nilai berikut: BCP_FILECP_ACP: data dalam file ada di halaman kode Microsoft Windows klien. BCP_FILECP_OEMCP: data dalam file ada di halaman kode OEM klien (default). BCP_FILECP_RAW: data dalam file ada di halaman kode SQL Server. |
BCP_OPTION_FILEFMT | Nomor versi format file data. Ini bisa 80 (SQL Server 2000 (8.x)), 90 (SQL Server 2005 (9.x)), 100 (SQL Server 2008 (10.0.x) atau SQL Server 2008 R2 (10.50.x)), 110 (SQL Server 2012 (11.x)), atau 120 (SQL Server 2014 (12.x). 120 adalah default. Ini berguna untuk mengekspor dan mengimpor data dalam format yang didukung oleh versi server sebelumnya. Misalnya, untuk mengimpor data yang diperoleh dari kolom teks di server SQL Server 2000 (8.x) ke dalam kolom varchar(max) di server SQL Server 2005 (9.x) atau yang lebih baru, Anda harus menentukan 80. Demikian pula, jika Anda menentukan 80 saat mengekspor data dari kolom varchar(maks), kolom tersebut akan disimpan seperti kolom teks disimpan dalam format SQL Server 2000 (8.x), dan dapat diimpor ke dalam kolom teks server SQL Server 2000 (8.x). |
BCP_OPTION_FIRST | Baris pertama data file atau tabel yang akan disalin. Defaultnya adalah 1; nilai kurang dari 1 mengatur ulang opsi ini ke defaultnya. |
BCP_OPTION_FIRSTEX | Untuk operasi keluar BCP, menentukan baris pertama tabel database yang akan disalin ke dalam file data. Untuk BCP dalam operasi, menentukan baris pertama file data yang akan disalin ke dalam tabel database. Parameter iValue diharapkan menjadi alamat bilangan bulat 64-bit yang ditandatangani yang berisi nilai . Nilai maksimum yang dapat diteruskan ke BCPFIRSTEX 2^63-1. |
BCP_OPTION_FMTXML | Digunakan untuk menentukan bahwa file format yang dihasilkan harus dalam format XML. Ini nonaktif secara default dan secara default file format disimpan sebagai file teks. File format XML memberikan fleksibilitas yang lebih besar tetapi dengan beberapa batasan tambahan. Misalnya, Anda tidak dapat menentukan awalan dan terminator untuk bidang secara bersamaan yang dimungkinkan dalam file format yang lebih lama. Catatan: File format XML hanya didukung saat alat SQL Server diinstal bersama dengan SQL Server Native Client. |
BCP_OPTION_HINTS | Argumen iValue berisi penunjuk string karakter lebar. String yang ditangani menentukan petunjuk pemrosesan salinan massal SQL Server atau pernyataan Transact-SQL yang mengembalikan kumpulan hasil. Jika pernyataan Transact-SQL ditentukan yang mengembalikan lebih dari satu tataan hasil, semua tataan hasil setelah yang pertama diabaikan. |
BCP_OPTION_KEEPIDENTITY | Ketika argumen iValue diatur ke TRUE, opsi ini menentukan bahwa metode penyalinan massal menyisipkan nilai data yang disediakan untuk kolom SQL Server yang ditentukan dengan batasan identitas. File input harus menyediakan nilai untuk kolom identitas. Jika ini tidak diatur, nilai identitas baru dihasilkan untuk baris yang disisipkan. Setiap data yang ada dalam file untuk kolom identitas diabaikan. |
BCP_OPTION_KEEPNULLS | Menentukan apakah nilai data kosong dalam file akan dikonversi ke nilai NULL dalam tabel SQL Server. Ketika argumen iValue diatur ke TRUE, nilai kosong akan dikonversi ke NULL dalam tabel SQL Server. Defaultnya adalah untuk nilai kosong yang akan dikonversi ke nilai default untuk kolom dalam tabel SQL Server jika ada default. |
BCP_OPTION_LAST | Baris terakhir yang akan disalin. Defaultnya adalah menyalin semua baris. Nilai kurang dari 1 mengatur ulang opsi ini ke defaultnya. |
BCP_OPTION_LASTEX | Untuk operasi keluar BCP, menentukan baris terakhir tabel database untuk disalin ke dalam file data. Untuk BCP dalam operasi, menentukan baris terakhir file data untuk disalin ke dalam tabel database. Parameter iValue diharapkan menjadi alamat bilangan bulat 64-bit yang ditandatangani yang berisi nilai . Nilai maksimum yang dapat diteruskan ke BCPLASTEX adalah 2^63-1. |
BCP_OPTION_MAXERRS | Jumlah kesalahan yang diizinkan sebelum operasi penyalinan massal gagal. Nilai default adalah 10. Nilai kurang dari 1 mengatur ulang opsi ini ke defaultnya. Salinan massal memberlakukan maksimum 65.535 kesalahan. Upaya untuk mengatur opsi ini ke nilai yang lebih besar dari 65.535 menghasilkan opsi yang diatur ke 65.535. |
BCP_OPTION_ROWCOUNT | Mengembalikan jumlah baris yang dipengaruhi oleh operasi BCP saat ini (atau terakhir). |
BCP_OPTION_TEXTFILE | File data bukan file biner, tetapi merupakan file teks. BCP melakukan deteksi apakah file teks adalah Unicode atau tidak dengan memeriksa penanda byte Unicode dalam 2 byte pertama file data. |
BCP_OPTION_UNICODEFILE | Ketika diatur ke TRUE, opsi ini menentukan bahwa file input adalah format file Unicode. |
Argumen
eOption[in]
Atur ke salah satu opsi yang tercantum di bagian keterangan di atas.
iValue[in]
Nilai untuk eOption yang ditentukan. Argumen iValue adalah nilai bilangan bulat yang dilemparkan ke penunjuk kekosongan untuk memungkinkan ekspansi di masa mendatang ke nilai 64 bit.
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 IBCPSession::BCPInit tidak dipanggil sebelum memanggil fungsi ini.
E_OUTOFMEMORY
Kesalahan kehabisan memori.