Bagikan melalui


SQLDescribeCol dan SQLColAttribute

SQLDescribeCol dan SQLColAttribute digunakan untuk mengambil metadata tataan hasil. Perbedaan antara kedua fungsi ini adalah bahwa SQLDescribeCol selalu mengembalikan lima informasi yang sama (nama kolom, jenis data, presisi, skala, dan nullability), sementara SQLColAttribute mengembalikan satu informasi yang diminta oleh aplikasi. Namun, SQLColAttribute dapat mengembalikan pilihan metadata yang jauh lebih kaya, termasuk sensitivitas huruf besar/kecil kolom, ukuran tampilan, updatability, dan kemampuan pencarian.

Banyak aplikasi, terutama yang hanya menampilkan data, hanya memerlukan metadata yang dikembalikan oleh SQLDescribeCol. Untuk aplikasi ini, lebih cepat menggunakan SQLDescribeCol daripada SQLColAttribute karena informasi dikembalikan dalam satu panggilan. Aplikasi lain, terutama yang memperbarui data, memerlukan metadata tambahan yang dikembalikan oleh SQLColAttribute dan karenanya menggunakan kedua fungsi. Selain itu, SQLColAttribute mendukung metadata khusus driver; untuk informasi selengkapnya, lihat Jenis Data Khusus Driver, Jenis Deskriptor, Jenis Informasi, Jenis Diagnostik, dan Atribut.

Aplikasi dapat mengambil metadata tataan hasil kapan saja setelah pernyataan disiapkan atau dijalankan dan sebelum kursor atas kumpulan hasil ditutup. Sangat sedikit aplikasi yang memerlukan metadata tataan hasil setelah pernyataan disiapkan dan sebelum dijalankan. Jika memungkinkan, aplikasi harus menunggu untuk mengambil metadata hingga setelah pernyataan dijalankan, karena beberapa sumber data tidak dapat mengembalikan metadata untuk pernyataan yang disiapkan dan meniru kemampuan ini di driver sering kali merupakan proses yang lambat. Misalnya, driver mungkin menghasilkan hasil nol baris yang ditetapkan dengan mengganti klausul WHERE dari pernyataan SELECT dengan klausul WHERE 1 = 2 dan menjalankan pernyataan yang dihasilkan.

Metadata sering kali mahal untuk diambil dari sumber data. Karena itu, driver harus menyimpan metadata apa pun yang mereka ambil dari server dan menahannya selama kursor di atas kumpulan hasil terbuka. Selain itu, aplikasi hanya boleh meminta metadata yang benar-benar mereka butuhkan.