Memperbarui Data dengan SQLSetPos

Aplikasi dapat memperbarui atau menghapus baris apa pun di set baris dengan SQLSetPos. Memanggil SQLSetPos adalah alternatif yang nyaman untuk membangun dan menjalankan pernyataan SQL. Ini memungkinkan driver ODBC mendukung pembaruan terarah meskipun sumber data tidak mendukung pernyataan SQL terarah. Ini adalah bagian dari paradigma mencapai akses database lengkap dengan cara panggilan fungsi.

SQLSetPos beroperasi pada set baris saat ini dan hanya dapat digunakan setelah panggilan ke SQLFetchScroll. Aplikasi menentukan nomor baris yang akan diperbarui, dihapus, atau disisipkan, dan driver mengambil data baru untuk baris tersebut dari buffer rowset. SQLSetPos juga dapat digunakan untuk menunjuk baris tertentu sebagai baris saat ini, atau untuk me-refresh baris tertentu dalam set baris dari sumber data.

Ukuran kumpulan baris diatur melalui pemanggilan SQLSetStmtAttr dengan argumen Attribute bernilai SQL_ATTR_ROW_ARRAY_SIZE. SQLSetPos menggunakan ukuran set baris baru, namun, hanya setelah panggilan ke SQLFetch atau SQLFetchScroll. Misalnya, jika ukuran set baris diubah, SQLSetPos dipanggil lalu SQLFetch atau SQLFetchScroll dipanggil, dan panggilan ke SQLSetPos menggunakan ukuran set baris lama sementara SQLFetch atau SQLFetchScroll menggunakan ukuran set baris baru.

Baris pertama dalam set baris adalah nomor baris 1. Argumen RowNumber di SQLSetPos harus mengidentifikasi baris dalam set baris; artinya, nilainya harus dalam rentang antara 1 dan jumlah baris yang terakhir diambil (yang mungkin kurang dari ukuran set baris). Jika RowNumber adalah 0, operasi berlaku untuk setiap baris dalam set baris.

Karena sebagian besar interaksi dengan database relasional dilakukan melalui SQL, SQLSetPos tidak didukung secara luas. Namun, pengemudi dapat dengan mudah menirunya dengan membangun dan menjalankan pernyataan UPDATE atau DELETE .

Untuk menentukan operasi apa yang didukung SQLSetPos , aplikasi memanggil SQLGetInfo dengan opsi informasi SQL_DYNAMIC_CURSOR_ATTRIBUTES1, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1, SQL_KEYSET_CURSOR_ATTRIBUTES1, atau SQL_STATIC_CURSOR_ATTRIBUTES1 (tergantung pada jenis kursor).

Bagian ini berisi topik berikut.