SQLColAttribute
Anda dapat menggunakan SQLColAttribute
untuk mengambil atribut kolom kumpulan hasil untuk pernyataan ODBC yang disiapkan atau dijalankan. Memanggil SQLColAttribute
pernyataan yang disiapkan menyebabkan perjalanan pulang-pergi SQL Server. Driver ODBC SQL Server Native Client menerima data kolom tataan hasil sebagai bagian dari eksekusi pernyataan, sehingga panggilan SQLColAttribute
setelah selesainya SQLExecute atau SQLExecDirect tidak melibatkan perjalanan 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. Nilainya 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. Nilainya 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 dari 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. |
SQL Server Native Client driver ODBC menggunakan pernyataan SET FMTONLY untuk mengurangi overhead server ketika SQLColAttribute
dipanggil untuk pernyataan yang disiapkan tetapi tidak dieksekusi.
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 kolom aktual dalam tataan hasil. Untuk kolom jenis nilai besar, nilai yang dikembalikan SQL_SS_LENGTH_UNLIMITED. |
SQL_DESC_OCTET_LENGTH | Mengembalikan panjang maksimum kolom jenis nilai besar. SQL_SS_LENGTH_UNLIMITED digunakan untuk menunjukkan ukuran yang tidak terbatas. |
SQL_DESC_PRECISION | Mengembalikan nilai SQL_SS_LENGTH_UNLIMITED untuk kolom jenis 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 tataan hasil dihasilkan oleh batch pernyataan SQL yang disiapkan.
Atribut kolom berikut adalah ekstensi yang diekspos oleh driver ODBC SQL Server Native Client. Driver ODBC SQL Server Native Client 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 primer untuk baris dan pernyataan T-SQL SELECT berisi FOR BROWSE. |
SQL_CA_SS_COLUMN_OP | Bilangan bulat yang menentukan operator agregat yang bertanggung jawab atas nilai dalam kolom klausa COMPUTE. Definisi nilai bilangan bulat ada di 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 dari array berisi hitungan kolom daftar BY. Elemen tambahan adalah ordinal kolom. |
SQL_CA_SS_COMPUTE_ID | computeid baris yang merupakan hasil klausul COMPUTE dalam pernyataan T-SQL SELECT saat ini. |
SQL_CA_SS_NUM_COMPUTES | Jumlah klausa COMPUTE yang ditentukan dalam pernyataan T-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 memperkenalkan bidang deskriptor khusus driver untuk memberikan informasi tambahan untuk menunjukkan nama koleksi skema XML, nama skema, dan nama katalog. 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 koleksi 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 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 Parameter dan Metadata Hasil.
Untuk informasi selengkapnya, lihat Peningkatan Tanggal dan Waktu (ODBC).
Dukungan SQLColAttribute untuk UDT CLR Besar
SQLColAttribute
mendukung jenis yang ditentukan pengguna (UDT) CLR yang besar. Untuk informasi selengkapnya, lihat Jenis User-Defined CLR Besar (ODBC).
Dukungan SQLColAttribute untuk Kolom Jarang
SQLColAttribute mengkueri bidang deskriptor baris implementasi (IRD) baru, SQL_CA_SS_IS_COLUMN_SET, untuk menentukan apakah kolom adalah column_set
kolom.
Untuk informasi selengkapnya, lihat Dukungan Kolom Jarang (ODBC).
Lihat juga
Fungsi SQLColAttribute
Detail Implementasi ODBC API
SQLSetStmtAttr