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 dukungan driver ODBC memposisikan pembaruan bahkan ketika sumber data tidak mendukung pernyataan SQL yang diposisikan. 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 jumlah baris yang akan diperbarui, dihapus, atau disisipkan, dan driver mengambil data baru untuk baris tersebut dari buffer set baris. 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 set baris diatur oleh panggilan ke SQLSetStmtAttr dengan argumen Atribut 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, driver dapat dengan mudah menirunya dengan membuat 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.