IBCPSession::BCPInit (OLE DB)

Berlaku untuk: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Unduh driver OLE DB

Menginisialisasi struktur penyalinan massal, melakukan beberapa pemeriksaan kesalahan, memverifikasi bahwa nama file data dan format sudah benar, lalu membukanya.

Sintaks

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

Keterangan

Metode BCPInit harus dipanggil sebelum metode penyalinan massal lainnya. Metode BCPInit melakukan inisialisasi yang diperlukan untuk salinan data massal antara stasiun kerja dan SQL Server.

Metode BCPInit memeriksa struktur sumber database atau tabel target, bukan file data. Ini menentukan nilai format data untuk file data berdasarkan setiap kolom dalam tabel database, tampilan, atau kumpulan hasil SELECT. Spesifikasi ini mencakup jenis data setiap kolom, keberadaan atau tidak adanya indikator panjang atau null dan string byte terminator dalam data, dan lebar jenis data dengan panjang tetap. Metode BCPInit menetapkan nilai-nilai ini sebagai berikut:

  • Jenis data yang ditentukan adalah tipe data kolom dalam tabel database, tampilan, atau kumpulan hasil SELECT. Jenis data dijumlahkan oleh SQL Server jenis data asli yang ditentukan dalam Driver OLE DB untuk file header SQL Server (msoledbsql.h). Nilai-nilainya dalam pola BCP_TYPE_XXX. Data diwakili dalam bentuk komputernya. Artinya, data dari kolom jenis data bilangan bulat diwakili oleh urutan empat byte yang besar atau little-endian berdasarkan komputer yang membuat file data.

  • Jika tipe data database diperbaiki panjangnya, data file data juga diperbaiki panjangnya. Metode salin massal yang memproses data (misalnya, IBCPSession::BCPExec) mengurai baris data yang mengharapkan panjang data dalam file data identik dengan panjang data yang ditentukan dalam tabel database, tampilan, atau daftar kolom SELECT. Misalnya, data untuk kolom database yang didefinisikan sebagai char(13) harus diwakili oleh 13 karakter untuk setiap baris data dalam file. Data panjang tetap dapat diawali dengan indikator null jika kolom database memungkinkan nilai null.

  • Saat menyalin data ke SQL Server, file data harus memiliki data untuk setiap kolom dalam tabel database. Saat menyalin data dari SQL Server, data dari semua kolom dalam tabel database, tampilan, atau kumpulan hasil SELECT disalin ke file data.

  • Saat menyalin data ke SQL Server, posisi ordinal kolom dalam file data harus identik dengan posisi ordinal kolom dalam tabel database. Saat menyalin data dari SQL Server, metode BCPExec menempatkan data berdasarkan posisi ordinal kolom dalam tabel database.

  • Jika jenis data database memiliki panjang variabel (misalnya, varbinary(22)) atau jika kolom database dapat berisi nilai null, data dalam file data diawali dengan indikator panjang/null. Lebar indikator bervariasi berdasarkan jenis data dan versi salinan massal. Opsi metode IBCPSession::BCPControl BCP_OPTION_FILEFMT memberikan kompatibilitas antara file data salinan massal sebelumnya dan server yang menjalankan versi SQL Server yang lebih baru dengan menunjukkan kapan lebar indikator dalam data lebih sempit dari yang diharapkan.

Catatan

Untuk mengubah nilai format data yang ditentukan untuk file data, gunakan metode IBCPSession::BCPColumns dan IBCPSession::BCPColFmt .

Salinan massal ke SQL Server dapat dioptimalkan untuk tabel yang tidak berisi indeks dengan mengatur opsi database pilih ke/bulkcopy.

Argumen

pwszTable[in]
Nama tabel database yang akan disalin ke dalam atau kehabisan. Nama dapat menyertakan nama database atau nama pemilik. Misalnya, "pubs.username.titles", "pubs.. titles", "username.titles".

Jika argumen eDirection diatur ke BCP_DIRECTION_OUT, argumen pwszTable bisa menjadi nama tampilan database.

Jika argumen eDirection diatur ke BCP_DIRECTION_OUT dan pernyataan SELECT ditentukan menggunakan metode BCPControl sebelum metode BCPExec dipanggil, argumen pwszTable harus diatur ke NULL.

pwszDataFile[in]
Nama file pengguna yang akan disalin ke dalam atau kehabisan.

pwszErrorFile[in]
Nama file kesalahan yang akan diisi dengan pesan kemajuan, pesan kesalahan, dan salinan baris apa pun yang tidak dapat disalin dari file pengguna ke tabel. Jika argumen pwszErrorFile diatur ke NULL, tidak ada file kesalahan yang digunakan.

eDirection[in]
Arah operasi salin, baik BCP_DIRECTION_IN atau BCP_DIRECTION _OUT. BCP_DIRECTION _IN menunjukkan salinan dari file pengguna ke tabel database; BCP_DIRECTION _OUT menunjukkan salinan dari tabel database ke file pengguna.

Mengembalikan Nilai Kode

S_OK
Metode berhasil.

E_FAIL
Terjadi kesalahan spesifik penyedia' untuk informasi terperinci, gunakan antarmuka ISQLServerErrorInfo .

E_OUTOFMEMORY
Kesalahan kehabisan memori.

E_INVALIDARG
Satu atau beberapa argumen tidak ditentukan dengan benar. Misalnya, nama file yang tidak valid diberikan.

Lihat juga

IBCPSession (OLE DB)
Melakukan Operasi Salin Massal