SQLColAttribute
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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 | Tipe | 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 | Tipe | 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