Bagikan melalui


Pembuatan Kumpulan Baris Parameter Bernilai Tabel

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

Unduh driver OLE DB

Meskipun konsumen dapat menyediakan objek set baris apa pun untuk parameter bernilai tabel, objek set baris umum diimplementasikan terhadap penyimpanan data back-end, dan karenanya memberikan performa terbatas. Untuk alasan ini, Driver OLE DB untuk SQL Server memungkinkan konsumen untuk membuat objek set baris khusus di atas data dalam memori. Objek rowset khusus dalam memori ini adalah objek COM baru yang disebut set baris parameter bernilai tabel. Ini menyediakan fungsionalitas yang mirip dengan set parameter.

Objek set baris parameter bernilai tabel dibuat secara eksplisit oleh konsumen untuk parameter input melalui beberapa antarmuka tingkat sesi. Ada satu contoh objek kumpulan baris parameter bernilai tabel per parameter bernilai tabel. Konsumen dapat membuat objek kumpulan baris parameter bernilai tabel baik dengan memberikan informasi metadata yang sudah diketahui (skenario statis), atau dengan menemukannya melalui antarmuka penyedia (skenario dinamis). Bagian berikut menjelaskan dua skenario ini.

Skenario Statis

Ketika informasi jenis diketahui, konsumen menggunakan ITableDefinitionWithConstraints::CreateTableWithConstraints untuk membuat instans objek rowset parameter bernilai tabel yang sesuai dengan parameter bernilai tabel.

Bidang guid (parameter pTableID ) berisi GUID khusus (CLSID_ROWSET_TVP). Anggota pwszName berisi nama jenis parameter bernilai tabel yang ingin diinstansiasi konsumen. Bidang eKind akan diatur ke DBKIND_GUID_NAME. Nama ini diperlukan ketika pernyataan ad hoc SQL; nama bersifat opsional jika merupakan panggilan prosedur.

Untuk agregasi, konsumen melewati parameter pUnkOuter dengan IUnknown yang mengontrol.

Properti objek rowset parameter bernilai tabel hanya dibaca, sehingga konsumen tidak diharapkan untuk mengatur properti apa pun di rgPropertySets.

Untuk anggota rgPropertySets dari setiap struktur DBCOLUMNDESC, konsumen dapat menentukan properti tambahan untuk setiap kolom. Properti ini milik kumpulan properti DBPROPSET_SQLSERVERCOLUMN. Mereka memungkinkan Anda menentukan pengaturan komputasi dan default untuk setiap kolom. Mereka juga mendukung properti kolom yang ada, seperti ketimpangan dan identitas.

Untuk mengambil informasi terkait dari objek kumpulan baris parameter bernilai tabel, konsumen menggunakan IRowsetInfo::GetProperties.

Untuk mengambil informasi tentang status null, unik, komputasi, dan pembaruan setiap kolom, konsumen dapat menggunakan IColumnsRowset::GetColumnsRowset atau IColumnsInfo::GetColumnInfo. Metode ini memberikan informasi terperinci tentang setiap kolom kumpulan baris parameter bernilai tabel.

Konsumen menentukan jenis setiap kolom parameter bernilai tabel. Ini mirip dengan bagaimana kolom ditentukan saat tabel dibuat di SQL Server. Konsumen mendapatkan objek rowset parameter bernilai tabel dari Driver OLE DB untuk SQL Server melalui parameter output ppRowset.

Skenario Dinamis

Ketika konsumen tidak memiliki informasi jenis, konsumen harus menggunakan IOpenRowset::OpenRowset untuk membuat instans objek rowset parameter bernilai tabel. Semua konsumen harus memberikan kepada penyedia adalah nama jenis.

Dalam skenario ini, penyedia mendapatkan informasi jenis tentang objek kumpulan baris parameter bernilai tabel dari server atas nama konsumen.

Parameter pTableID dan pUnkOuter harus diatur seperti dalam skenario statis. Driver OLE DB untuk SQL Server kemudian mendapatkan informasi jenis (informasi kolom dan batasan) dari server, dan mengembalikan objek rowset parameter bernilai tabel melalui parameter ppRowset. Operasi ini memerlukan komunikasi dengan server, dan karenanya tidak berfungsi serta skenario statis. Skenario dinamis hanya berfungsi dengan panggilan prosedur berparameter.

Lihat juga

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