Dukungan Jenis Parameter Bernilai Tabel OLE DB di Klien Asli SQL Server (Metode)

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

Metode OLE DB standar berikut mendukung parameter bernilai tabel:

Metode Dukungan parameter bernilai tabel
ITableDefinitionWithConstraints::CreateTableWithConstraints Digunakan saat Anda mengetahui informasi jenis parameter bernilai tabel, dan ingin membuat instans objek kumpulan baris parameter bernilai tabel berdasarkan informasi jenis.

Untuk informasi selengkapnya, lihat "Skenario Statis" dalam Pembuatan Set Baris Parameter Bernilai Tabel.
IOpenRowset::OpenRowset Digunakan saat Anda tidak mengetahui informasi jenis parameter bernilai tabel, dan ingin membuat instans objek kumpulan baris parameter bernilai tabel berdasarkan informasi metadata yang diambil dari server.

Untuk informasi selengkapnya, lihat "Skenario Dinamis" dalam Pembuatan Himpunan Baris Parameter Bernilai Tabel.
ISSCommandWithParameters::SetParameterInfo Untuk menentukan parameter perintah parameter bernilai tabel, konsumen menentukan jenis parameter sebagai "tabel" atau "DBTYPE_TABLE" dalam anggota pwszName dari struktur DBPARAMBINDINFO. UlParamSize diatur ke ~0. Untuk informasi selengkapnya, lihat "Spesifikasi Parameter Bernilai Tabel" dalam Menjalankan Perintah yang Berisi Parameter Bernilai Tabel.
ISSCommandWithParameters::SetParameterProperties Mengatur properti khusus untuk parameter bernilai tabel, seperti nama skema, nama jenis, urutan kolom, dan kolom default.

Konsumen menentukan ordinal parameter dalam iOrdinal struktur SSPARAMPROPS. Kumpulan properti yang diminta DBPROPSET_SQLSERVERPARAMETER.
ISSCommandWithParameters::GetParameterInfo Mendapatkan jenis semua parameter ke perintah tertentu.

Untuk parameter bernilai tabel, bidang wType dalam struktur DBPARAMINFO akan memiliki jenis DBTYPE_TABLE. Bidang ulParamSize akan diatur ke ~0 untuk menunjukkan panjang yang tidak diketahui.
ISSCommandWithParameters::GetParameterProperties Mendapatkan informasi jenis tambahan untuk parameter jenis DBTYPE_TABLE.

Konsumen menentukan ordinal parameter dalam anggota iOrdinal dari struktur SSPARAMPROPS. Konsumen dapat meminta salah satu properti dalam kumpulan properti DBPROPSET_SQLSERVERPARAMETER yang tercantum di bawah ISSCommandWithParameters::SetParameterProperties.

Karena konsumen tidak mengetahui jenis parameter bernilai tabel, penyedia harus mengatur SSPROP_PARAM_TYPE_TYPENAME, SSPROP_PARAM_TYPE_SCHEMANAME, dan SSPROP_PARAM_TYPE_CATALOGNAME ke nilai yang benar. Properti yang tersisa, SSPROP_PARAM_TABLE_DEFAULT_COLUMNS dan SSPROP_PARAM_TABLE_COLUMN_SORT_ORDER, akan memiliki nilai defaultnya. Setelah konsumen menemukan nama jenis parameter bernilai tabel, konsumen menggunakan IOpenRowset::OpenRowset untuk membuat instans parameter bernilai tabel ini, menentukan nama jenis parameter bernilai tabel. Untuk informasi selengkapnya, lihat Penemuan Jenis Parameter Bernilai Tabel.
IRowsetInfo::GetProperties Mendapatkan properti himpunan baris parameter bernilai tabel. Konsumen dapat menggunakan properti ini untuk menyiapkan pengikatan secara optimal.
IColumnsRowset::GetColumnsRowset Mengambil informasi metadata tentang tabel SQL Server. Untuk parameter bernilai tabel, antarmuka yang sama ini menyediakan informasi metadata terperinci tentang setiap kolom, seperti berikut ini:

DBCOLUMN_FLAGS menunjukkan nullability melalui bit DBCOLUMNFLAGS_ISNULLABLE.

DBCOLUMN_ISUNIQUE menunjukkan apakah kolom tersebut adalah kolom identitas.

DBCOLUMN_COMPUTEMODE menunjukkan apakah kolom dihitung.
IAccessor::CreateAccessor Untuk mengikat objek set baris parameter bernilai tabel ke parameter perintah, Anda membuat aksesor dengan anggota wType-nya diatur ke DBTYPE_TABLE. Struktur DBOBJECT akan berisi IID_IRowset atau antarmuka objek set baris lain yang valid di anggota iid . Bidang lainnya diperlakukan mirip dengan DBTYPE_IUNKNOWN.

Lihat Juga

Dukungan Jenis Parameter Bernilai Tabel OLE DB
Pembuatan Set Baris Parameter Bernilai Tabel
Menggunakan Parameter Bernilai Tabel (OLE DB)