Jenis ODBC SQL untuk Parameter Table-Valued

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

Dukungan untuk parameter bernilai tabel disediakan oleh jenis ODBC SQL baru, SQL_SS_TABLE.

Keterangan

SQL_SS_TABLE tidak dapat dikonversi ke tipe data ODBC atau SQL Server lainnya.

Jika SQL_SS_TABLE digunakan sebagai jenis data C dalam parameter ValueType SQLBindParameter, atau upaya dilakukan untuk mengatur SQL_DESC_TYPE dalam catatan deskriptor parameter aplikasi (APD) ke SQL_SS_TABLE, SQL_ERROR dikembalikan dan rekaman diagnostik dihasilkan dengan SQLSTATE=HY003, "Jenis buffer aplikasi tidak valid".

Jika SQL_DESC_TYPE diatur ke SQL_SS_TABLE dalam rekaman IPD dan catatan deskriptor parameter aplikasi yang sesuai tidak SQL_C_DEFAULT, SQL_ERROR dikembalikan dan rekaman diagnostik dihasilkan dengan SQLSTATE=HY003, "Jenis buffer aplikasi tidak valid". Ini dapat terjadi dengan ParameterType dari SQLSetDescField, SQLSetDescRec atau SQLBindParameter.

Jika parameter TargetType SQL_SS_TABLE saat memanggil SQLGetData, SQL_ERROR dikembalikan dan rekaman diagnostik dihasilkan dengan SQLSTATE=HY003, "Jenis buffer aplikasi tidak valid".

Kolom parameter bernilai tabel tidak dapat diikat sebagai jenis SQL_SS_TABLE. Jika SQLBindParameter dipanggil dengan ParameterType diatur ke SQL_SS_TABLE, SQL_ERROR dikembalikan dan rekaman diagnostik dihasilkan dengan SQLSTATE=HY004, "Jenis data SQL tidak valid". Ini juga dapat terjadi dengan SQLSetDescField dan SQLSetDescRec.

Nilai kolom parameter bernilai tabel memiliki opsi konversi data yang sama dengan parameter dan kolom hasil.

Parameter bernilai tabel hanya dapat menjadi parameter input di SQL Server 2008 (10.0.x) atau yang lebih baru. Jika upaya dilakukan untuk mengatur SQL_DESC_PARAMETER_TYPE ke nilai selain SQL_PARAM_INPUT melalui SQLBindParameter atau SQLSetDescField, SQL_ERROR dikembalikan dan rekaman diagnostik ditambahkan ke pernyataan dengan SQLSTATE=HY105 dan pesan "Jenis parameter tidak valid".

Kolom parameter bernilai tabel tidak dapat menggunakan SQL_DEFAULT_PARAM dalam StrLen_or_IndPtr, karena nilai default per baris tidak didukung dengan parameter bernilai tabel. Sebagai gantinya, aplikasi dapat mengatur atribut kolom SQL_CA_SS_COL_HAS_DEFAULT_VALUE ke 1. Ini berarti bahwa kolom akan memiliki nilai default untuk semua baris. Jika StrLen_or_IndPtr diatur ke SQL_DEFAULT_PARAM, SQLExecute atau SQLExecDirect akan mengembalikan SQL_ERROR, dan rekaman diagnostik akan ditambahkan ke pernyataan dengan SQLSTATE=HY090 dan pesan "String atau panjang buffer tidak valid".

Lihat juga

Parameter Bernilai Tabel (ODBC)