Bagikan melalui


Menjalankan Perintah yang Berisi Parameter Bernilai Tabel

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

Unduh driver OLE DB

Menjalankan perintah dengan parameter bernilai tabel memerlukan dua fase:

  1. Tentukan jenis parameter.

  2. Mengikat data parameter.

Spesifikasi Parameter Table-Valued

Konsumen dapat menentukan jenis parameter bernilai tabel. Informasi ini mencakup nama jenis parameter bernilai tabel. Ini juga mencakup nama skema, jika jenis tabel yang ditentukan pengguna untuk parameter bernilai tabel tidak berada dalam skema default saat ini untuk koneksi. Bergantung pada dukungan server, konsumen juga dapat menentukan informasi metadata opsional, seperti pengurutan kolom, dan dapat menunjukkan bahwa semua baris untuk kolom tertentu memiliki nilai default.

Untuk menentukan parameter bernilai tabel, konsumen memanggil ISSCommandWithParameter::SetParameterInfo, dan secara opsional memanggil ISSCommandWithParameters::SetParameterProperties. Untuk parameter bernilai tabel, bidang pwszDataSourceType dalam struktur DBPARAMBINDINFO memiliki nilai DBTYPE_TABLE. Bidang ulParamSize diatur ke ~0 untuk menunjukkan bahwa panjangnya tidak diketahui. Properti tertentu untuk parameter bernilai tabel, seperti nama skema, nama jenis, urutan kolom, dan kolom default, dapat diatur melalui ISSCommandWithParameters::SetParameterProperties.

Table-Valued Pengikatan Parameter

Parameter bernilai tabel dapat berupa objek set baris apa pun. Penyedia membaca dari objek ini saat mengirim parameter bernilai tabel ke server selama eksekusi.

Untuk mengikat parameter bernilai tabel, konsumen memanggil IAccessor::CreateAccessor. Bidang wType dari struktur DBBINDING untuk parameter bernilai tabel diatur ke DBTYPE_TABLE. Anggota pObject dari struktur DBBINDING adalah non-NULL, dan anggota iidpObject diatur ke IID_IRowset atau antarmuka objek set baris parameter bernilai tabel lainnya. Bidang yang tersisa dalam struktur DBBINDING harus diatur dengan cara yang sama seperti yang ditetapkan untuk BLOB yang dialirkan.

Dalam pengikatan untuk parameter bernilai tabel dan objek set baris yang terkait dengan parameter bernilai tabel, pembatasan berikut berlaku:

  • Satu-satunya nilai status yang diizinkan untuk data kolom kumpulan baris parameter bernilai tabel adalah DBSTATUS_S_ISNULL dan DBSTATUS_S_OK. DBSTATUS_S_DEFAULT akan mengakibatkan kegagalan, dan nilai status terikat akan diatur ke DBSTATUS_E_BADSTATUS.

  • Parameter bernilai tabel dapat ditandai dengan status DBSTATUS_S_DEFAULT. Satu-satunya nilai yang valid adalah DBSTATUS_S_DEFAULT dan DBSTATUS_S_OK. Saat status diatur ke DBSTATUS_S_DEFAULT, nilai parameter bernilai tabel sesuai dengan tabel kosong.

  • Kolom baca-saja dalam parameter bernilai tabel (identitas atau kolom komputasi) harus ditandai sebagai default dengan menggunakan properti SSPROP_PARAM_TABLE_DEFAULT_COLUMNS. Kolom yang memiliki nilai default juga harus ditandai sebagai default melalui properti SSPROP_PARAM_TABLE_DEFAULT_COLUMNS untuk memungkinkan nilai default digunakan untuk nilai data kolom untuk parameter bernilai tabel tertentu. Penyedia akan mengabaikan nilai data yang terikat untuk kolom yang ditandai sebagai default.

  • Data akan dikirim ke server untuk kolom dengan DBPROP_COL_AUTOINCREMENT atau SSPROP_COL_COMPUTED, kecuali SSPROP_PARAM_TABLE_DEFAULT juga diatur.

Lihat juga

Parameter Bernilai Tabel (OLE DB)
Menggunakan Parameter Table-Valued (OLE DB)