Apakah Kumpulan Hasil Dibuat?

Dalam kebanyakan situasi, programmer aplikasi tahu apakah pernyataan yang dijalankan aplikasi mereka akan membuat tataan hasil. Ini adalah kasus jika aplikasi menggunakan pernyataan SQL yang dikodekan secara permanen yang ditulis oleh programmer. Hal ini biasanya terjadi ketika aplikasi menyusun pernyataan SQL saat runtime: pemrogram dapat dengan mudah menyertakan kode yang menunjukkan apakah pernyataan SELECT atau pernyataan INSERT yang sedang dibuat. Dalam beberapa situasi, programmer mungkin tidak dapat mengetahui apakah pernyataan akan membuat kumpulan hasil. Ini benar jika aplikasi menyediakan cara bagi pengguna untuk memasukkan dan menjalankan pernyataan SQL. Hal ini juga berlaku ketika aplikasi membuat pernyataan pada waktu proses untuk menjalankan prosedur.

Dalam kasus seperti itu, aplikasi memanggil SQLNumResultCols untuk menentukan jumlah kolom dalam tataan hasil. Jika ini adalah 0, pernyataan tidak membuat tataan hasil; jika itu adalah angka lain, pernyataan memang membuat tataan hasil.

Aplikasi dapat memanggil SQLNumResultCols kapan saja setelah pernyataan disiapkan atau dijalankan. Namun, karena beberapa sumber data tidak dapat dengan mudah menggambarkan kumpulan hasil yang akan dibuat oleh pernyataan yang disiapkan, performa akan menderita jika SQLNumResultCols dipanggil setelah pernyataan disiapkan tetapi sebelum dijalankan.

Beberapa sumber data juga mendukung penentuan jumlah baris yang dikembalikan pernyataan SQL dalam kumpulan hasil. Untuk melakukannya, aplikasi memanggil SQLRowCount. Apa tepatnya yang direpresentasikan oleh jumlah baris ditunjukkan oleh pengaturan opsi SQL_DYNAMIC_CURSOR_ATTRIBUTES2, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2, SQL_KEYSET_CURSOR_ATTRIBUTES2, atau SQL_STATIC_CURSOR_ATTRIBUTES2 (bergantung pada jenis kursornya) yang dikembalikan oleh pemanggilan SQLGetInfo. Bitmask ini menunjukkan untuk setiap jenis kursor apakah jumlah baris yang dikembalikan tepat, perkiraan, atau tidak tersedia sama sekali. Apakah jumlah baris untuk kursor statis atau berbasis keyset dipengaruhi oleh perubahan yang dilakukan melalui SQLBulkOperations atau SQLSetPos, atau dengan pernyataan pembaruan atau penghapusan yang diposisikan, tergantung pada bit lain yang dikembalikan oleh argumen opsi yang sama yang tercantum sebelumnya. Untuk informasi selengkapnya, lihat deskripsi fungsi SQLGetInfo .