Rozmiar wiersza kursora

Dotyczy:sql ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Kursory ODBC nie ograniczają się do pobierania jednego wiersza naraz. Mogą pobierać wiele wierszy w każdym połączeniu z SQLFetch lub SQLFetchScroll. Gdy pracujesz z bazą danych klient/serwer, taką jak Microsoft SQL Server, efektywniejsze jest pobieranie kilku wierszy jednocześnie. Liczba wierszy zwracanych przy pobieraniu nazywana jest rozmiarem zestawu wierszowego i określana jest za pomocą SQL_ATTR_ROW_ARRAY_SIZE SQLSetStmtAttr.

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

Kursory o rozmiarze wiersza większego niż 1 nazywane są kursorami blokowymi.

Istnieją dwie opcje wiązania kolumn zbioru wyników dla kursorów blokowych:

  • Oprawa kolumnowa

    Każda kolumna jest przypisana do tablicy zmiennych. Każda tablica ma tyle samo elementów, ile rozmiar wiersza.

  • Łączenie wierszami

    Tablica jest budowana z struktur, które przechowują dane i wskaźniki dla wszystkich kolumn w rzędzie. Tablica ma tyle samo struktur, ile rozmiar wiersza.

Gdy używane jest przypisanie kolumnowe lub wierszowe, każde wywołanie SQLFetch lub SQLFetchScroll wypełnia powiązane tablice danymi z pobranego zestawu wierszy.

SQLGetData może być również używany do pobierania danych kolumn z kursora blokowego. Ponieważ SQLGetData działa po jednym wierszu na raz, SQLSetPos musi zostać wywołany, aby ustawić konkretny wiersz w zbiorze jako aktualny wiersz przed wywołaniem SQLGetData.

Sterownik ODBC dla natywnego klienta SQL Server oferuje optymalizację wykorzystując wiersze do szybkiego pobierania całego zestawu wyników. Aby wykorzystać tę optymalizację, ustaw atrybuty kursora na ich domyślne wartości (tylko do przodu, tylko do odczytu, rozmiar wiersza = 1) w momencie wywołania SQLExecDirect lub SQLExecute . Natywny sterownik ODBC klienta SQL Server tworzy domyślny zestaw wyników. Jest to bardziej efektywne niż kursory serwera przy przesyłaniu wyników do klienta bez przewijania. Po wykonaniu instrukcji zwiększ rozmiar wiersza i użyj przypisania kolumnowego lub wierszowego. Pozwala to SQL Server korzystać z domyślnego zbioru wyników do efektywnego wysyłania wierszy wyników do klienta, podczas gdy sterownik ODBC SQL Server Native Client nieprzerwanie pobiera wiersze z buforów sieciowych klienta.