Gunakan Kursor (ODBC)

Berlaku untuk: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Untuk menggunakan kursor

  1. Panggil SQLSetStmtAttr untuk mengatur atribut kursor yang diinginkan:

    Atur atribut SQL_ATTR_CURSOR_TYPE dan SQL_ATTR_CONCURRENCY (ini adalah opsi yang disukai).

    Atau

    Atur atribut SQL_CURSOR_SCROLLABLE dan SQL_CURSOR_SENSITIVITY.

  2. Panggil SQLSetStmtAttr untuk mengatur ukuran set baris dengan menggunakan atribut SQL_ATTR_ROW_ARRAY_SIZE.

  3. Secara opsional, panggil SQLSetCursorName untuk mengatur nama kursor jika pembaruan yang diposisikan akan dilakukan dengan menggunakan klausa WHERE CURRENT OF.

  4. Jalankan pernyataan SQL.

  5. Secara opsional, panggil SQLGetCursorName untuk mendapatkan nama kursor jika pembaruan yang diposisikan akan dilakukan dengan menggunakan klausa WHERE CURRENT OF dan nama kursor tidak disediakan dengan SQLSetCursorName di Langkah 3.

  6. Panggil SQLNumResultCols untuk mendapatkan jumlah kolom (C) di set baris.

    Gunakan pengikatan kolom yang bijaksana.

    - atau -

    Gunakan pengikatan row-wise.

  7. Ambil set baris dari kursor sesuai keinginan.

  8. Panggil SQLMoreResults untuk menentukan apakah tataan 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 kali, di mana S adalah jumlah elemen dalam array parameter terikat. Ini berarti bahwa akan ada kumpulan hasil S untuk diproses, di mana setiap set hasil terdiri dari semua set hasil, parameter output, dan kode pengembalian biasanya dikembalikan oleh satu eksekusi pernyataan SQL.

    Perhatikan bahwa ketika 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 tataan hasil.

  9. Secara opsional, panggil SQLFreeStmt dengan SQL_UNBIND untuk merilis buffer kolom terikat apa pun.

  10. Jika tataan hasil lain tersedia, buka Langkah 6.

    Di Langkah 9, memanggil SQLMoreResults pada tataan hasil yang diproses sebagian akan menghapus sisa tataan 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.

Lihat juga

Menggunakan Topik Panduan Kursor (ODBC)