Kursor Statis ODBC

Kursor statis adalah kursor di mana tataan hasil tampaknya statis. Biasanya tidak mendeteksi perubahan yang dilakukan pada keanggotaan, urutan, atau nilai hasil yang ditetapkan setelah kursor dibuka. Misalnya, kursor statis mengambil baris dan aplikasi lain kemudian memperbarui baris tersebut. Jika kursor statis mengambil ulang baris, nilai yang dilihatnya tidak berubah, meskipun perubahan yang dibuat oleh aplikasi lain.

Kursor statis dapat mendeteksi pembaruan, penghapusan, dan penyisipan mereka sendiri, meskipun mereka tidak diharuskan untuk melakukan ini. Apakah kursor statis tertentu mendeteksi perubahan ini dilaporkan melalui opsi SQL_STATIC_SENSITIVITY di SQLGetInfo. Kursor statis tidak pernah mendeteksi pembaruan, penghapusan, dan penyisipan lainnya.

Array status baris yang ditentukan oleh atribut pernyataan SQL_ATTR_ROW_STATUS_PTR dapat berisi SQL_ROW_SUCCESS, SQL_ROW_SUCCESS_WITH_INFO, atau SQL_ROW_ERROR untuk baris apa pun. Ini mengembalikan SQL_ROW_UPDATED, SQL_ROW_DELETED, atau SQL_ROW_ADDED untuk baris yang diperbarui, dihapus, atau disisipkan oleh kursor, dengan asumsi bahwa kursor dapat mendeteksi perubahan tersebut.

Kursor statis biasanya diimplementasikan dengan mengunci baris dalam tataan hasil atau dengan membuat salinan, atau rekam jepret, dari kumpulan hasil. Meskipun mengunci baris relatif mudah dilakukan, ini memiliki kelemahan mengurangi konkurensi secara signifikan. Membuat salinan memungkinkan konkurensi yang lebih besar dan memungkinkan kursor untuk melacak pembaruan, penghapusan, dan penyisipannya sendiri dengan memodifikasi salinan. Namun, salinan lebih mahal untuk dibuat dan dapat menyimpang dari data yang mendasar karena data tersebut diubah oleh orang lain.