Bagikan melalui


Ukuran Himpunan Baris Kursor

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

Kursor ODBC tidak terbatas pada mengambil satu baris pada satu waktu. Mereka dapat mengambil beberapa baris dalam setiap panggilan ke SQLFetch atau SQLFetchScroll. Saat Anda bekerja dengan database klien/server seperti Microsoft SQL Server, lebih efisien untuk mengambil beberapa baris sekaligus. Jumlah baris yang dikembalikan pada pengambilan disebut ukuran set baris dan ditentukan dengan menggunakan SQL_ATTR_ROW_ARRAY_SIZE SQLSetStmtAttr.

SQLUINTEGER uwRowsize;  
SQLSetStmtAttr(m_hstmt, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)uwRowsetSize, SQL_IS_UINTEGER);  

Kursor dengan ukuran set baris yang lebih besar dari 1 disebut kursor blok.

Ada dua opsi untuk mengikat kolom tataan hasil untuk kursor blok:

  • Pengikatan kolom bijaksana

    Setiap kolom terikat ke array variabel. Setiap array memiliki jumlah elemen yang sama dengan ukuran set baris.

  • Pengikatan baris bijaksana

    Array dibangun menggunakan struktur yang menyimpan data dan indikator untuk semua kolom berturut-turut. Array memiliki jumlah struktur yang sama dengan ukuran set baris.

Saat pengikatan bijaksana kolom atau baris digunakan, setiap panggilan ke SQLFetch atau SQLFetchScroll mengisi array terikat dengan data dari set baris yang diambil.

SQLGetData juga dapat digunakan untuk mengambil data kolom dari kursor blok. Karena SQLGetData bekerja satu baris pada satu waktu, SQLSetPos harus dipanggil untuk mengatur baris tertentu dalam set baris sebagai baris saat ini sebelum memanggil SQLGetData.

Driver ODBC SQL Server Native Client menawarkan pengoptimalan menggunakan rowset untuk mengambil seluruh tataan hasil dengan cepat. Untuk menggunakan pengoptimalan ini, atur atribut kursor ke defaultnya (teruskan-saja, baca-saja, ukuran set baris = 1) pada saat SQLExecDirect atau SQLExecute dipanggil. Driver ODBC SQL Server Native Client menyiapkan tataan hasil default. Ini lebih efisien daripada kursor server saat mentransfer hasil ke klien tanpa menggulir. Setelah pernyataan dijalankan, tingkatkan ukuran set baris dan gunakan pengikatan bijaksana kolom atau baris. Ini memungkinkan SQL Server menggunakan tataan hasil default untuk mengirim baris hasil secara efisien ke klien, sementara driver ODBC SQL Server Native Client terus menarik baris dari buffer jaringan pada klien.

Lihat Juga

Properti Kursor