Bagikan melalui


Menggunakan Kumpulan Hasil Bawaan SQL Server

Atribut kursor ODBC default adalah:

SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE, SQL_CURSOR_FORWARD_ONLY, SQL_IS_INTEGER);  
SQLSetStmtAttr(hstmt, SQL_ATTR_CONCURRENCY, SQL_CONCUR_READ_ONLY, SQL_IS_INTEGER);  
SQLSetStmtAttr(hstmt, SQL_ATTR_ROW_ARRAY_SIZE, 1, SQL_IS_INTEGER);  

Setiap kali atribut ini diatur ke defaultnya, driver ODBC SQL Server Native Client menggunakan kumpulan hasil default SQL Server. Kumpulan hasil default dapat digunakan untuk pernyataan SQL apa pun yang didukung oleh SQL Server, dan merupakan metode paling efisien untuk mentransfer seluruh hasil yang diatur ke klien.

SQL Server 2005 memperkenalkan dukungan untuk beberapa kumpulan hasil aktif (MARS); aplikasi sekarang dapat memiliki lebih dari satu tataan hasil default aktif per koneksi. MARS tidak diaktifkan secara default.

Sebelum SQL Server 2005, kumpulan hasil default tidak mendukung beberapa pernyataan aktif pada koneksi yang sama. Setelah pernyataan SQL dijalankan pada koneksi, server tidak menerima perintah (kecuali permintaan untuk membatalkan sisa kumpulan hasil) dari klien pada koneksi tersebut sampai semua baris dalam tataan hasil telah diproses. Untuk membatalkan sisa kumpulan hasil yang diproses sebagian, panggil SQLCloseCursor atau SQLFreeStmt dengan parameter fOption yang diatur ke SQL_CLOSE. Untuk menyelesaikan kumpulan hasil yang diproses sebagian dan menguji keberadaan kumpulan hasil lain, panggil SQLMoreResults. Jika aplikasi ODBC mencoba perintah pada handel koneksi sebelum tataan hasil default telah diproses sepenuhnya, panggilan menghasilkan SQL_ERROR dan panggilan ke SQLGetDiagRec mengembalikan:

szSqlState: "HY000", pfNativeError: 0  
szErrorMsg: "[Microsoft][SQL Server Native Client]  
                Connection is busy with results for another hstmt."  

Lihat Juga

Bagaimana Kursor Diimplementasikan