Udostępnij za pośrednictwem


Korzystanie z zestawów wyników domyślne programu SQL Server

Atrybuty domyślne ODBC kursor są:

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

W każdym przypadku, gdy te atrybuty są ustawione wartości domyślne, SQL Server używa sterownika ODBC macierzystym klienta SQL Server domyślny zestaw wyników.Domyślne zestawy wyników mogą być używane dla dowolnej instrukcja języka SQL, obsługiwane przez SQL Server, i są najbardziej efektywne metoda przesyłania całego zestaw wyników do klient.

SQL Server 2005wprowadzonego obsługę wielu zestawów wyników active (MARS); aplikacje teraz może mieć więcej niż jeden domyślny zestaw wyników aktywnego na połączenie.MARS nie jest włączona domyślnie.

Przed SQL Server 2005, zestawy wyników domyślny nie obsługuje wielu instrukcji aktywne na tym samym połączeniu.Po wykonaniu instrukcja języka SQL dla połączenia, serwer nie akceptuje polecenia (z wyjątkiem żądania anulować pozostałą część zestaw wyników) od klient na tym połączeniu, dopóki nie zostaną przetworzone wszystkie wiersze zestaw wyników.Aby anulować pozostałą część zestaw wyników częściowo przetworzonych, call SQLCloseCursor lub SQLFreeStmt z fOption ustawić parametr SQL_CLOSE.Na zakończenie zestaw wyników częściowo przetworzonych i badanie na obecność innego zestaw wyników, call SQLMoreResults.Jeśli w aplikacji ODBC próbuje polecenie uchwyt połączenia, zanim całkowicie przetworzone domyślny zestaw wyników, wywołanie generuje wartość SQL_ERROR i wywołanie SQLGetDiagRec zwraca:

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

Zobacz także

Koncepcje