SQLColAttribute

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

Anda dapat menggunakan SQLColAttribute untuk mengambil atribut kolom kumpulan hasil untuk pernyataan ODBC yang disiapkan atau dijalankan. Memanggil SQLColAttribute pada pernyataan yang disiapkan menyebabkan perjalanan pulang pergi ke SQL Server. Driver ODBC Klien Asli SQL Server menerima data kolom kumpulan hasil sebagai bagian dari eksekusi pernyataan, jadi memanggil SQLColAttribute setelah penyelesaian SQLExecute atau SQLExecDirect tidak melibatkan pulang pergi server.

Catatan

Atribut pengidentifikasi kolom ODBC tidak tersedia di semua kumpulan hasil SQL Server.

Pengidentifikasi bidang Deskripsi
SQL_COLUMN_TABLE_NAME Tersedia pada kumpulan hasil yang diambil dari pernyataan yang menghasilkan kursor server atau pada pernyataan SELECT yang dijalankan yang berisi klausa FOR BROWSE.
SQL_DESC_BASE_COLUMN_NAME Tersedia pada kumpulan hasil yang diambil dari pernyataan yang menghasilkan kursor server atau pada pernyataan SELECT yang dijalankan yang berisi klausa FOR BROWSE.
SQL_DESC_BASE_TABLE_NAME Tersedia pada kumpulan hasil yang diambil dari pernyataan yang menghasilkan kursor server atau pada pernyataan SELECT yang dijalankan yang berisi klausa FOR BROWSE.
SQL_DESC_CATALOG_NAME Nama database. Tersedia pada kumpulan hasil yang diambil dari pernyataan yang menghasilkan kursor server atau pada pernyataan SELECT yang dijalankan yang berisi klausa FOR BROWSE.
SQL_DESC_LABEL Tersedia di semua tataan hasil. Nilai identik dengan nilai bidang SQL_DESC_NAME.

Bidang adalah panjang nol hanya jika kolom adalah hasil ekspresi dan ekspresi tidak berisi penetapan label.
SQL_DESC_NAME Tersedia di semua tataan hasil. Nilai identik dengan nilai bidang SQL_DESC_LABEL.

Bidang adalah panjang nol hanya jika kolom adalah hasil ekspresi dan ekspresi tidak berisi penetapan label.
SQL_DESC_SCHEMA_NAME Nama pemilik. Tersedia pada kumpulan hasil yang diambil dari pernyataan yang menghasilkan kursor server atau pada pernyataan SELECT yang dijalankan yang berisi klausa FOR BROWSE.

Hanya tersedia jika nama pemilik ditentukan untuk kolom dalam pernyataan SELECT.
SQL_DESC_TABLE_NAME Tersedia pada kumpulan hasil yang diambil dari pernyataan yang menghasilkan kursor server atau pada pernyataan SELECT yang dijalankan yang berisi klausa FOR BROWSE.
SQL_DESC_UNNAMED SQL_NAMED untuk semua kolom dalam tataan hasil kecuali kolom adalah hasil ekspresi yang tidak berisi penetapan label sebagai bagian dari ekspresi. Saat SQL_DESC_UNNAMED mengembalikan SQL_UNNAMED, semua atribut pengidentifikasi kolom ODBC berisi string panjang nol untuk kolom.

Driver ODBC SQL Server Native Client menggunakan pernyataan SET FMTONLY untuk mengurangi overhead server ketika SQLColAttribute dipanggil untuk pernyataan yang disiapkan tetapi tidak tereksteksi.

Untuk jenis nilai besar, SQLColAttribute akan mengembalikan nilai berikut:

Pengidentifikasi bidang Deskripsi perubahan
SQL_DESC_DISPLAY_SIZE Ini adalah jumlah maksimum karakter yang diperlukan untuk menampilkan data dari kolom. Untuk kolom jenis nilai besar, nilai yang dikembalikan SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_LENGTH Mengembalikan panjang aktual kolom dalam tataan hasil. Untuk kolom jenis nilai besar, nilai yang dikembalikan SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_OCTET_LENGTH Mengembalikan panjang maksimum kolom tipe nilai besar. SQL_SS_LENGTH_UNLIMITED digunakan untuk menunjukkan ukuran tak terbatas.
SQL_DESC_PRECISION Mengembalikan nilai SQL_SS_LENGTH_UNLIMITED untuk kolom tipe nilai besar.
SQL_DESC_TYPE Mengembalikan SQL_VARCHAR, SQL_WVARCHAR, dan SQL_VARBINARY untuk jenis nilai besar.
SQL_DESC_TYPE_NAME Mengembalikan "varchar", "varbinary", "nvarchar" untuk jenis nilai besar.

Untuk semua versi, atribut kolom hanya dilaporkan untuk hasil pertama yang ditetapkan ketika beberapa set hasil dihasilkan oleh batch pernyataan SQL yang disiapkan.

Atribut kolom berikut adalah ekstensi yang diekspos oleh driver ODBC SQL Server Native Client. Driver ODBC Klien Asli SQL Server mengembalikan semua nilai dalam parameter NumericAttrPtr . Nilai dikembalikan sebagai SDWORD (panjang yang ditandatangani) kecuali SQL_CA_SS_COMPUTE_BYLIST, yang merupakan penunjuk ke array WORD.

Pengidentifikasi bidang Nilai yang dikembalikan
SQL_CA_SS_COLUMN_HIDDEN* TRUE jika kolom yang direferensikan adalah bagian dari kunci primer tersembunyi yang dibuat untuk mendukung pernyataan TRANSACT-SQL SELECT yang berisi FOR BROWSE.
SQL_CA_SS_COLUMN_ID Posisi ordinal kolom hasil klausa COMPUTE dalam pernyataan T-SQL SELECT saat ini.
SQL_CA_SS_COLUMN_KEY* TRUE jika kolom yang dirujuk adalah bagian dari kunci utama untuk baris dan pernyataan Transact-SQL SELECT berisi UNTUK TELUSURI.
SQL_CA_SS_COLUMN_OP Bilangan bulat yang menentukan operator agregat yang bertanggung jawab atas nilai dalam kolom klausa COMPUTE. Definisi nilai bilangan bulat berada dalam sqlncli.h.
SQL_CA_SS_COLUMN_ORDER Posisi ordinal kolom dalam klausa ORDER BY pernyataan ODBC atau Transact-SQL SELECT.
SQL_CA_SS_COLUMN_SIZE Panjang maksimum, dalam byte, diperlukan untuk mengikat nilai data yang diambil dari kolom ke variabel SQL_C_BINARY.
SQL_CA_SS_COLUMN_SSTYPE Jenis data asli data yang disimpan di kolom SQL Server. Definisi nilai jenis berada di sqlncli.h.
SQL_CA_SS_COLUMN_UTYPE Jenis data dasar dari jenis data yang ditentukan pengguna kolom SQL Server. Definisi nilai jenis berada di sqlncli.h.
SQL_CA_SS_COLUMN_VARYLEN TRUE jika data kolom dapat bervariasi panjangnya, FALSE jika tidak.
SQL_CA_SS_COMPUTE_BYLIST Penunjuk ke array WORD (pendek yang tidak ditandatangani) yang menentukan kolom yang digunakan dalam frasa BY dari klausa COMPUTE. Jika klausa COMPUTE tidak menentukan frasa BY, penunjuk NULL dikembalikan.

Elemen pertama array berisi hitungan kolom daftar BY. Elemen tambahan adalah ordinal kolom.
SQL_CA_SS_COMPUTE_ID komputasi baris yang merupakan hasil klausul COMPUTE dalam pernyataan Transact-SQL SELECT saat ini.
SQL_CA_SS_NUM_COMPUTES Jumlah klausul COMPUTE yang ditentukan dalam pernyataan Transact-SQL SELECT saat ini.
SQL_CA_SS_NUM_ORDERS Jumlah kolom yang ditentukan dalam klausa ORDER BY pernyataan ODBC atau Transact-SQL SELECT.

* Tersedia jika atribut pernyataan SQL_SOPT_SS_HIDDEN_COLUMNS diatur ke SQL_HC_ON.

SQL Server 2005 (9.x) memperkenalkan bidang deskriptor khusus driver untuk memberikan informasi tambahan untuk menunjukkan nama koleksi skema XML, nama skema, dan nama katalog, masing-masing. Properti ini tidak memerlukan tanda kutip atau karakter escape jika berisi karakter non-alfanumerik. Tabel berikut mencantumkan bidang deskriptor baru ini:

Nama kolom Jenis Deskripsi
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME CharacterAttributePtr Nama katalog tempat nama kumpulan skema XML ditentukan. Jika nama katalog tidak dapat ditemukan, maka variabel ini berisi string kosong.

Informasi ini dikembalikan dari bidang rekaman SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME IRD, yang merupakan bidang baca-tulis.
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E CharacterAttributePtr Nama skema tempat nama koleksi skema XML ditentukan. Jika nama skema tidak dapat ditemukan, maka variabel ini berisi string kosong.

Informasi ini dikembalikan dari bidang rekaman SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME IRD, yang merupakan bidang baca-tulis.
SQL_CA_SS_XML_SCHEMACOLLECTION_NAME CharacterAttributePtr Nama koleksi skema XML. Jika nama tidak dapat ditemukan, maka variabel ini berisi string kosong.

Informasi ini dikembalikan dari bidang rekaman SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME IRD, yang merupakan bidang baca-tulis.

Selain itu, SQL Server 2005 (9.x) memperkenalkan bidang deskriptor khusus driver baru untuk memberikan informasi tambahan untuk kolom jenis yang ditentukan pengguna (UDT) dari kumpulan hasil atau parameter UDT dari prosedur tersimpan atau kueri berparameter. Properti ini tidak memerlukan tanda kutip atau karakter escape jika berisi karakter non-alfanumerik. Tabel berikut mencantumkan bidang deskriptor baru ini:

Nama kolom Jenis Deskripsi
SQL_CA_SS_UDT_CATALOG_NAME CharacterAttributePtr Nama katalog yang berisi UDT.
SQL_CA_SS_UDT_SCHEMA_NAME CharacterAttributePtr Nama skema yang berisi UDT.
SQL_CA_SS_UDT_TYPE_NAME CharacterAttributePtr Nama UDT.
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME CharacterAttributePtr Nama UDT yang memenuhi syarat perakitan.

Pengidentifikasi bidang deskriptor yang ada SQL_DESC_TYPE_NAME digunakan untuk menunjukkan nama UDT. Bidang SQL_DESC_TYPE untuk kolom jenis UDT SQL_SS_UDT.

Dukungan SQLColAttribute untuk Fitur Tanggal dan Waktu yang Ditingkatkan

Untuk nilai yang dikembalikan untuk jenis tanggal/waktu, lihat bagian "Informasi yang Dikembalikan di Bidang IRD" di Metadata Parameter dan Hasil.

Untuk informasi selengkapnya, lihat Peningkatan Tanggal dan Waktu (ODBC).

Dukungan SQLColAttribute untuk UDT CLR Besar

SQLColAttribute mendukung jenis yang ditentukan pengguna (UDT) CLR besar. Untuk informasi selengkapnya, lihat Jenis Yang Ditentukan Pengguna (ODBC) CLR Besar.

Dukungan SQLColAttribute untuk Kolom Sparse

SQLColAttribute meminta bidang deskriptor baris implementasi (IRD) baru, SQL_CA_SS_IS_COLUMN_SET, untuk menentukan apakah kolom adalah kolom column_set .

Untuk informasi selengkapnya, lihat Dukungan Kolom Jarang (ODBC).

Lihat Juga

Fungsi SQLColAttribute
Detail Implementasi ODBC API
SQLSetStmtAttr