Bidang Deskriptor Parameter Table-Valued

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

Dukungan untuk parameter bernilai tabel mencakup bidang khusus SQL Server baru dalam deskriptor parameter aplikasi (APD) ODBC dan deskriptor parameter implementasi (IPD).

Keterangan

Nama Lokasi Jenis Deskripsi
SQL_CA_SS_TYPE_NAME IPD SQLTCHAR* Nama jenis server dari parameter bernilai tabel.

Ketika nama jenis parameter bernilai tabel ditentukan pada panggilan ke SQLBindParameter, nama tersebut harus selalu ditentukan sebagai nilai Unicode, bahkan dalam aplikasi yang dibangun sebagai aplikasi ANSI. Nilai yang digunakan untuk parameter StrLen_or_IndPtr harus SQL_NTS atau panjang string nama dikalikan dengan sizeof(WCHAR).

Ketika nama jenis parameter bernilai tabel ditentukan melalui SQLSetDescField, itu dapat ditentukan dengan menggunakan harfiah yang sesuai dengan cara aplikasi dibangun. Manajer Driver ODBC akan melakukan konversi Unicode yang diperlukan.
SQL_CA_SS_TYPE_CATALOG_NAME (baca saja) IPD SQLTCHAR* Katalog tempat jenis ditentukan.
SQL_CA_SS_TYPE_SCHEMA_NAME IPD SQLTCHAR* Skema tempat jenis didefinisikan.

Aplikasi tidak boleh mengatur SQL_CA_SS_TYPE_CATALOG_NAME untuk parameter bernilai tabel. Melakukannya akan mengembalikan SQL_ERROR dan mencatat rekaman diagnostik dengan SQLSTATE = HY091 dan pesan "Pengidentifikasi bidang deskriptor tidak valid".

Atribut pernyataan berikut dan bidang header deskriptor berlaku untuk parameter bernilai tabel saat fokus parameter diatur ke parameter bernilai tabel:

Nama Lokasi Jenis Deskripsi
SQL_ATTR_PARAMSET_SIZE

(Ini setara dengan SQL_DESC_ARRAY_SIZE dalam APD.)
APD SQLUINTEGER Ukuran array array buffer untuk parameter bernilai tabel. Ini adalah jumlah maksimum baris yang akan diakomodasi buffer atau ukuran buffer dalam baris; nilai parameter bernilai tabel itu sendiri mungkin memiliki lebih banyak atau lebih sedikit baris daripada yang dapat ditahan oleh buffer. Defaultnya adalah 1.

Catatan: Jika SQL_SOPT_SS_PARAM_FOCUS diatur ke nilai default 0, SQL_ATTR_PARAMSET_SIZE mengacu pada pernyataan dan menentukan jumlah set parameter. Jika SQL_SOPT_SS_PARAM_FOCUS diatur ke ordinal parameter bernilai tabel, itu mengacu pada parameter bernilai tabel dan menentukan jumlah baris per parameter yang ditetapkan untuk parameter bernilai tabel.
SQL_ATTR_PARAM _BIND_TYPE APD SQLINTEGER Defaultnya adalah SQL_PARAM_BIND_BY_COLUMN.

Untuk memilih pengikatan baris, bidang ini diatur ke panjang struktur atau instans buffer yang akan terikat ke sekumpulan baris parameter bernilai tabel. Panjang ini harus mencakup ruang untuk semua kolom terikat dan padding struktur atau buffer apa pun. Ini memastikan bahwa ketika alamat kolom terikat dinaikkan dengan panjang yang ditentukan, hasilnya akan menunjuk ke awal kolom yang sama di baris berikutnya. Saat menggunakan operator sizeof di ANSI C, perilaku ini dijamin.
SQL_ATTR_PARAM_BIND_OFFSET_PTR APD SQLINTEGER* Defaultnya adalah penunjuk null.

Jika bidang ini bukan null, driver mendereferensikan penunjuk, menambahkan nilai dereferensi ke setiap bidang yang ditangguhkan dalam catatan deskriptor (SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR, dan SQL_DESC_OCTET_LENGTH_PTR), dan menggunakan nilai pointer baru untuk mengakses nilai data.

Bidang ini hanya valid dengan parameter bernilai tabel, dan diabaikan untuk jenis data lainnya.

SQL_CA_SS_TYPE_NAME bersifat opsional untuk panggilan prosedur tersimpan. Ini harus ditentukan untuk pernyataan SQL yang bukan panggilan prosedur untuk mengaktifkan server untuk menentukan jenis parameter bernilai tabel.

Jika nama jenis dikueri ulang dan jenis tabel untuk parameter bernilai tabel ditentukan dalam skema yang berbeda dari prosedur tersimpan, SQL_CA_SS_TYPE_SCHEMA_NAME harus ditentukan dalam pendeskripsi parameter implementasi (IPD). Jika tidak, server tidak akan dapat menentukan jenis parameter bernilai tabel. Ini akan mengakibatkan kesalahan saat Anda memanggil SQLExecute atau SQLExecDirect. Kesalahan akan memiliki SQLSTATE= 07006 dan pesan "Pelanggaran atribut jenis data terbatas".

Kolom parameter bernilai tabel dapat menggunakan pengikatan row-wise atau column-wise. Defaultnya adalah pengikatan kolom- bijaksana. Pengikatan baris dapat ditentukan dengan mengatur SQL_ATTR_PARAM_BIND_TYPE dan SQL_ATTR_ PARAM_BIND_OFFSET_PTR. Ini dianalogikan dengan pengikatan kolom dan parameter yang bijaksana baris.

SQL_CA_SS_TYPE_CATALOG_NAME dan SQL_CA_SS_TYPE_SCHEMA_NAME juga dapat digunakan untuk mengambil katalog dan skema yang terkait dengan parameter jenis yang ditentukan pengguna CLR. Ini adalah alternatif untuk atribut skema katalog khusus jenis yang ada untuk jenis ini.

Lihat juga

Parameter Bernilai Tabel (ODBC)