Udostępnij za pośrednictwem


Zestawy wierszy i programu SQL Server kursory

SQL Server Zwraca wynik ustawia konsumentom przy użyciu dwóch metod:

  • Zestawy wyników domyślne, które:

    • Zminimalizować obciążenie.

    • Podaj Maksymalna wydajność pobierania danych.

    • Obsługuje tylko funkcje domyślnego kursor tylko przesyłanie dalej, tylko do odczytu.

    • Powrócić do konsumenta o jeden wiersz na wiersze czas.

    • Obsługuje tylko jedną instrukcję aktywne w danej chwili na połączenie.

      Po instrukcja zostało wykonane, nie innych instrukcja mogą być wykonywane w danym połączeniu do momentu pobrania wszystkich wyniki przez konsumenta lub zostało anulowane w instrukcja.

    • Obsługuje wszystkie Transact-SQL instrukcje.

  • Kursory serwer która:

    • Obsługuje wszystkie funkcje kursor.

    • Mogą być zwracane bloki wierszy do konsumenta.

    • Obsługuje wiele instrukcji aktywne na jedno połączenie.

    • Saldo kursor funkcje dla wydajności.

      Obsługa funkcji kursor może obniżyć wydajność względem domyślny zestaw wyników.Może to być przesunięty, jeżeli konsument mogą korzystać z funkcji kursor, aby pobrać mniejszy zestaw wierszy.

    • Nie obsługują żadnych Transact-SQL Ustaw instrukcja, która zwraca więcej niż jeden wynik.

Konsumenci mogą żądać zachowania różnych kursor w zestawu zestaw wierszy przez ustawienie właściwości określonych zestaw wierszy.Jeżeli konsument nie ustawia jeden z tych właściwości zestaw wierszy lub ustawia je wszystkie do wartości domyślnych SQL Server Macierzystego dostawca klient OLE DB implementuje zestaw wierszy za pomocą domyślnego zestaw wyników. Jeśli jeden z tych właściwości jest ustawiona na wartość inną niż domyślna, SQL Server Macierzystego dostawca klient OLE DB implementuje zestaw wierszy za pomocą kursor serwera.

Następujące właściwości zestaw wierszy bezpośredniego SQL Server Macierzystego dostawca klient OLE DB do używania SQL Server kursory. Niektóre właściwości można bezpiecznie łączyć z innymi osobami.Na przykład zestaw wierszy, który ujawnia się właściwości DBPROP_IRowsetScroll i DBPROP_IRowsetChange będzie zestawu wierszy zakładki wykazujące natychmiast zaktualizować zachowanie.Inne właściwości wzajemnie się wykluczają.Na przykład zestawu zestaw wierszy wykazujące DBPROP_OTHERINSERT nie może zawierać zakładki.

Identyfikator właściwość

Wartość

Działanie zestawu zestaw wierszy

DBPROP_SERVERCURSOR

VARIANT_TRUE

Nie można zaktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy jest sekwencyjne pomocniczych do przodu, przewijania i pobieranie tylko.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać ORDER BY klauzula.

DBPROP_CANSCROLLBACKWARDS lub DBPROP_CANFETCHBACKWARDS

VARIANT_TRUE

Nie można zaktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy obsługuje przewijania i pobieranie w dowolnym kierunku.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać ORDER BY klauzula.

DBPROP_BOOKMARKS lub DBPROP_LITERALBOOKMARKS

VARIANT_TRUE

Nie można zaktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy jest sekwencyjne pomocniczych do przodu, przewijania i pobieranie tylko.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać ORDER BY klauzula.

DBPROP_OWNUPDATEDELETE lub DBPROP_OWNINSERT DBPROP_OTHERUPDATEDELETE

VARIANT_TRUE

Nie można zaktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy obsługuje przewijania i pobieranie w dowolnym kierunku.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać ORDER BY klauzula.

DBPROP_OTHERINSERT

VARIANT_TRUE

Nie można zaktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy obsługuje przewijania i pobieranie w dowolnym kierunku.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać klauzulę ORDER BY, jeśli istnieje indeks w kolumnach, do którego istnieje odwołanie.

Jeśli ten zestaw wierszy zawiera zakładki, DBPROP_OTHERINSERT nie może być VARIANT_TRUE.Próby utworzenia zestawu zestaw wierszy z tej właściwość widoczność i zakładek spowoduje wystąpienie błędu.

DBPROP_IRowsetLocate lub DBPROP_IRowsetScroll

VARIANT_TRUE

Nie można zaktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy obsługuje przewijania i pobieranie w dowolnym kierunku.Zakładki i pozycjonowania bezwzględnego, za pośrednictwem IRowsetLocate interfejs są obsługiwane w zestawie zestaw wierszy.Tekst polecenia mogą zawierać ORDER BY klauzula.

DBPROP_IRowsetLocate i DBPROP_IRowsetScroll wymagają zakładek w zestawie zestaw wierszy.Próby utworzenia zestaw wierszy z zakładek i ustawić VARIANT_TRUE DBPROP_OTHERINSERT spowoduje wystąpienie błędu.

DBPROP_IRowsetChange lub DBPROP_IRowsetUpdate

VARIANT_TRUE

Można aktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy jest sekwencyjne pomocniczych do przodu, przewijania i pobieranie tylko.Pozycjonowanie względne do wiersza jest obsługiwany.Wszystkie polecenia obsługują można aktualizować kursorów może obsługiwać tych interfejsów.

DBPROP_IRowsetLocate lub DBPROP_IRowsetScroll i DBPROP_IRowsetChange DBPROP_IRowsetUpdate

VARIANT_TRUE

Można aktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy obsługuje przewijania i pobieranie w dowolnym kierunku.Zakładki i pozycjonowania bezwzględnego, za pomocą IRowsetLocate są obsługiwane w zestawie zestaw wierszy.Tekst polecenia mogą zawierać ORDER BY klauzula.

DBPROP_IMMOBILEROWS

VARIANT_FALSE

Nie można zaktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy obsługuje przewijanie do przodu tylko.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać klauzulę ORDER BY, jeśli istnieje indeks w kolumnach, do którego istnieje odwołanie.

DBPROP_IMMOBILEROWS jest dostępna tylko w zestawów wierszy, które można wyświetlić SQL Server wiersze wstawione za pomocą poleceń w innej sesji lub przez innych użytkowników. Próby otwarcia zestawu wierszy z właściwością ustawioną na VARIANT_FALSE na każdy zestaw wierszy, dla których DBPROP_OTHERINSERT nie może być VARIANT_TRUE spowoduje wystąpienie błędu.

DBPROP_REMOVEDELETED

VARIANT_TRUE

Nie można zaktualizować SQL Server dane za pomocą zestawu zestaw wierszy. Zestaw wierszy obsługuje przewijanie do przodu tylko.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać klauzulę ORDER BY, o ile nie jest ograniczone przez inną właściwość.

A SQL Server Macierzysty zestaw wierszy dostawca klient OLE DB, obsługiwane przez kursor serwera mogą być tworzone w prosty sposób na SQL Server bazowej tabela lub widoku za pomocą IOpenRowset::OpenRowset metoda.Określ tabela lub widok według nazwy, przekazując wymaganego zestawu zestaw wierszy ustawia właściwość w rgPropertySets parametr.

Tekst polecenia, które powoduje utworzenie zestawu wierszy jest ograniczona, gdy wymaga konsumenta, że zestaw wierszy ma być obsługiwany przez kursor serwera.W szczególności tekst polecenia jest ograniczone do jednego instrukcji SELECT, która zwraca wynik jednego zestawu zestaw wierszy lub procedura przechowywana, które implementuje jeden instrukcja SELECT zwraca wynik jednego zestawu zestaw wierszy.

Te dwie tabele Pokaż mapowania różne właściwości OLE DB i modeli kursor.Pokazują one również właściwości zestaw wierszy, które należy ustawić za pomocą określonego typu z modelu kursor.

Każda komórka w tabela znajduje się wartość właściwość zestaw wierszy dla modelu określonych kursor.Typ danych właściwości zestawu zestaw wierszy z wcześniej w tym temacie jest VT_BOOL a wartością domyślną jest VARIANT_FALSE.Następujące symbole są używane w tabela.

F = wartość domyślną (VARIANT_FALSE)

T = VARIANT_TRUE

-= VARIANT_TRUE lub VARIANT_FALSE

Typ modelu kursor, odszukaj kolumna odpowiadającej modelu kursor i znaleźć wszystkie właściwości zestawu zestaw wierszy z wartością 'T "kolumna.Ustawić te właściwości zestaw wierszy do VARIANT_TRUE do korzystania z modelu określonych kursor.Właściwości zestaw wierszy z '-' jako wartości zestaw VARIANT_TRUE lub VARIANT_FALSE.

Zestaw wierszy właściwości/kursor modeli

Default

wynik

zestaw

(RO)

Szybkie

w przód-

tylko

(RO)

Statyczne

(RO)

Zestaw kluczy

o zmiennych

(RO)

DBPROP_SERVERCURSOR

P

T

T

T

DBPROP_DEFERRED

P

P

-

-

DBPROP_IrowsetChange

P

P

P

P

DBPROP_IrowsetLocate

P

P

-

-

DBPROP_IrowsetScroll

P

P

-

-

DBPROP_IrowsetUpdate

P

P

P

P

DBPROP_BOOKMARKS

P

P

-

-

DBPROP_CANFETCHBACKWARDS

P

P

-

-

DBPROP_CANSRCOLLBACKWARDS

P

P

-

-

DBPROP_CANHOLDROWS

P

P

-

-

DBPROP_LITERALBOOKMARKS

P

P

-

-

DBPROP_OTHERINSERT

P

T

P

P

DBPROP_OTHERUPDATEDELETE

P

T

P

T

DBPROP_OWNINSERT

P

T

P

T

DBPROP_OWNUPDATEDELETE

P

T

P

T

DBPROP_QUICKSTART

P

P

-

-

DBPROP_REMOVEDELETED

P

P

P

-

DBPROP_IrowsetResynch

P

P

P

-

DBPROP_CHANGEINSERTEDROWS

P

P

P

P

DBPROP_SERVERDATAONINSERT

P

P

P

-

DBPROP_UNIQUEROWS

-

P

P

P

DBPROP_IMMOBILEROWS

-

-

-

T

Zestaw wierszy właściwości / kursor modeli

Dynamiczne (RO)

Zestaw kluczy (odczyt/zapis)

Dynamiczne (odczyt/zapis)

DBPROP_SERVERCURSOR

T

T

T

DBPROP_DEFERRED

-

-

-

DBPROP_IrowsetChange

P

-

-

DBPROP_IrowsetLocate

P

-

P

DBPROP_IrowsetScroll

P

-

P

DBPROP_IrowsetUpdate

P

-

-

DBPROP_BOOKMARKS

P

-

P

DBPROP_CANFETCHBACKWARDS

-

-

-

DBPROP_CANSRCOLLBACKWARDS

-

-

-

DBPROP_CANHOLDROWS

P

-

P

DBPROP_LITERALBOOKMARKS

P

-

P

DBPROP_OTHERINSERT

T

P

T

DBPROP_OTHERUPDATEDELETE

T

T

T

DBPROP_OWNINSERT

T

T

T

DBPROP_OWNUPDATEDELETE

T

T

T

DBPROP_QUICKSTART

-

-

-

DBPROP_REMOVEDELETED

T

-

T

DBPROP_IrowsetResynch

-

-

-

DBPROP_CHANGEINSERTEDROWS

P

-

P

DBPROP_SERVERDATAONINSERT

P

-

P

DBPROP_UNIQUEROWS

P

P

P

DBPROP_IMMOBILEROWS

P

T

P

Określony zestaw właściwości zestawu zestaw wierszy modelu kursor wybranym jest określana w następujący sposób.

Z określonej kolekcja właściwości zestawu zestaw wierszy należy uzyskać podzbiór właściwości wymienione w poprzednich tabelach.Podzielić te właściwość na dwóch podgrup, w zależności od wartości flagi — wymagana (T F) lub opcjonalne (-) — właściwość każdego zestawu zestaw wierszy.Dla każdego modelu kursor uruchomić w pierwszej tabela i przenosi od lewej do prawej., porównując wartości w dwóch podgrup właściwości z wartościami z odpowiednich właściwości w tej kolumnie.Model kursor, który ma nie niezgodności z wymaganych właściwości i najmniejszą liczbę niezgodności z opcjonalnych właściwości jest zaznaczone.Jeśli istnieje więcej niż jeden model kursor, wybierany jest po lewej stronie.

Rozmiar blok kursorów SQL Server

Gdy SQL Server kursor obsługuje SQL Server Macierzysty zestaw wierszy dostawca klient OLE DB, liczba elementów w wierszu obsługi parametr tablicy IRowset::GetNextRows or the IRowsetLocate::GetRowsAt metody Określa rozmiar blok kursora.Wiersze oznaczone uchwyty znajdujące się w tablicy są członkami blok kursor.

Dla wierszy towarzyszących zakładki, uchwytów wierszy pobierane za pomocą IRowsetLocate::GetRowsByBookmark metoda zdefiniować członków blok kursor.

Niezależnie od metoda używane do wypełniania zestaw wierszy i formularz SQL Server Blok kursor bloku kursor jest aktywny, aż do następnej metoda pobierania zestaw wierszy jest wykonywane na zestawie zestaw wierszy.