Menggunakan Kursor (ODBC)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Untuk menggunakan kursor
Panggil SQLSetStmtAttr untuk mengatur atribut kursor yang diinginkan:
Atur atribut SQL_ATTR_CURSOR_TYPE dan SQL_ATTR_CONCURRENCY (ini adalah opsi pilihan).
Atau
Atur atribut SQL_CURSOR_SCROLLABLE dan SQL_CURSOR_SENSITIVITY.
Panggil SQLSetStmtAttr untuk mengatur ukuran set baris dengan menggunakan atribut SQL_ATTR_ROW_ARRAY_SIZE.
Secara opsional, panggil SQLSetCursorName untuk mengatur nama kursor jika pembaruan yang diposisikan akan dilakukan dengan menggunakan klausa WHERE CURRENT OF.
Jalankan pernyataan SQL.
Secara opsional, panggil SQLGetCursorName untuk mendapatkan nama kursor jika pembaruan yang diposisikan akan dilakukan dengan menggunakan klausul WHERE CURRENT OF dan nama kursor tidak disediakan dengan SQLSetCursorName di Langkah 3.
Panggil SQLNumResultCols untuk mendapatkan jumlah kolom (C) di set baris.
Gunakan pengikatan kolom yang bijaksana.
- atau -
Gunakan pengikatan baris-bijaksana.
Ambil set baris dari kursor sesuai keinginan.
Panggil SQLMoreResults untuk menentukan apakah kumpulan hasil lain tersedia.
Jika mengembalikan SQL_SUCCESS, kumpulan hasil lain akan tersedia.
Jika mengembalikan SQL_NO_DATA, tidak ada lagi tataan hasil yang tersedia.
Jika mengembalikan SQL_SUCCESS_WITH_INFO atau SQL_ERROR, panggil SQLGetDiagRec untuk menentukan apakah output dari pernyataan PRINT atau RAISERROR tersedia.
Jika parameter pernyataan terikat digunakan untuk parameter output atau nilai pengembalian prosedur tersimpan, gunakan data yang sekarang tersedia di buffer parameter terikat.
Ketika parameter terikat digunakan, setiap panggilan ke SQLExecute atau SQLExecDirect akan menjalankan pernyataan SQL S times, di mana S adalah jumlah elemen dalam array parameter terikat. Ini berarti bahwa akan ada serangkaian hasil S untuk diproses, di mana setiap set hasil terdiri dari semua kumpulan hasil, parameter output, dan kode pengembalian biasanya dikembalikan oleh satu eksekusi pernyataan SQL.
Perhatikan bahwa saat kumpulan hasil berisi baris komputasi, setiap baris komputasi tersedia sebagai tataan hasil terpisah. Kumpulan hasil komputasi ini diselingi dalam baris normal dan memecah baris normal menjadi beberapa kumpulan hasil.
Secara opsional, panggil SQLFreeStmt dengan SQL_UNBIND untuk merilis buffer kolom terikat apa pun.
Jika tataan hasil lain tersedia, buka Langkah 6.
Di Langkah 9, memanggil SQLMoreResults pada kumpulan hasil yang diproses sebagian akan menghapus sisa kumpulan hasil. Cara lain untuk menghapus kumpulan hasil yang diproses sebagian adalah dengan memanggil SQLCloseCursor.
Anda dapat mengontrol jenis kursor yang digunakan dengan mengatur SQL_ATTR_CURSOR_TYPE dan SQL_ATTR_CONCURRENCY, atau dengan mengatur SQL_ATTR_CURSOR_SENSITIVITY dan SQL_ATTR_CURSOR_SCROLLABLE. Anda tidak boleh mencampur dua metode untuk menentukan perilaku kursor.