Bagikan melalui


Apakah Tataan 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. Biasanya terjadi ketika aplikasi membuat pernyataan SQL pada waktu proses: Programmer dapat dengan mudah menyertakan kode yang menandai apakah pernyataan SELECT atau pernyataan INSERT sedang dibangun. 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. Persis seperti yang ditunjukkan oleh pengaturan opsi SQL_DYNAMIC_CURSOR_ATTRIBUTES2, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2, SQL_KEYSET_CURSOR_ATTRIBUTES2, atau SQL_STATIC_CURSOR_ATTRIBUTES2 (tergantung pada jenis kursor) yang dikembalikan oleh panggilan ke 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 .