SQL Server Varsayılan Sonuç Kümelerinin Kullanımı

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform System (PDW)

Varsayılan ODBC imleci öznitelikleri şunlardır:

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);  

Bu öznitelikler varsayılan olarak ayarlandığında, SQL Server Native Client ODBC sürücüsü SQL Server varsayılan sonuç kümesi kullanır. Varsayılan sonuç kümeleri, SQL Server tarafından desteklenen herhangi bir SQL ifadesi için kullanılabilir ve tüm sonuç setini istemciye aktarmanın en verimli yoludur.

SQL Server 2005 (9.x) birden fazla aktif sonuç kümesi (MARS) desteğini tanıttı; uygulamalar artık bağlantı başına birden fazla aktif varsayılan sonuç setine sahip olabilir. MARS varsayılan olarak etkin değildir.

SQL Server 2005 (9.x) öncesinde, varsayılan sonuç kümeleri aynı bağlantıda birden fazla aktif ifadeyi desteklemiyordu. Bir bağlantı üzerinde SQL ifadesi çalıştırıldıktan sonra, sunucu o bağlantıdaki istemcinin komutlarını (geri kalan sonuç kümesinin iptal edilmesi talebi hariç) kabul etmez, ta ki sonuç kümesindeki tüm satırlar işlenene kadar. Kısmen işlenmiş bir sonuç kümesinin kalanını iptal etmek için, fOption parametresini SQL_CLOSE olarak ayarlayarak SQLCloseCursor veya SQLFreeStmt çağırın. Kısmen işlenmiş bir sonuç setini tamamlamak ve başka bir sonuç kümesinin varlığını test etmek için SQLMoreResults çağırın. Bir ODBC uygulaması, varsayılan sonuç kümesi tamamen işlemeden önce bir bağlantı kolunda komut denerse, çağrı SQL_ERROR oluşturur ve SQLGetDiagRec çağrısı şöyle döner:

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