Zestawów wierszy i SQL Server kursory
SQL Server Zwraca wynik ustawia konsumentom, przy użyciu dwóch metod:
Zestawy wyników domyślny, który:
Zminimalizować obciążenie.
Zapewniają Maksymalna wydajność podczas pobierania danych.
Obsługuje tylko funkcje domyślnego kursor tylko do przodu, tylko do odczytu.
Zwraca wierszy do konsumenta o jeden wiersz w czas.
Obsługuje tylko jedną instrukcję aktywny w czas w połączeniu.
Po wykonaniu instrukcja nie występują instrukcje może być wykonywany połączenia, dopóki wszystkie wyniki zostały pobrane przez konsumenta lub oświadczenie zostało anulowane.
Obsługują wszystkie Transact-SQL instrukcji.
Kursory serwera:
Obsługuje wszystkie funkcje kursor.
Można zwrócić bloki wierszy do konsumenta.
Obsługuje wielokrotne instrukcje aktywnego na jedno połączenie.
Saldo funkcję kursor przeciwko wydajności.
Obsługa funkcji kursor może obniżyć wydajność względem domyślny zestaw wyników.Jeśli konsument można używać funkcji kursor pobierania mniejszy zestaw wierszy, to może być zrekompensowane.
Nie obsługuje żadnego Transact-SQL instrukcja, która zwraca więcej niż jeden zestaw wyników.
Konsumenci mogą żądać zachowania różnych kursor w zestawu zestaw wierszy niektórych właściwości zestawu zestaw wierszy.Jeśli konsument nie ustawiono jednej z tych właściwości zestawu zestaw wierszy lub ustawia je wszystkie do wartości domyślnych SQL Server macierzystego klienta dostawca OLE DB implementuje zestaw wierszy przy użyciu domyślny zestaw wyników.Jeśli jeden z tych właściwości jest ustawiona na wartość inną niż domyślna, SQL Server macierzystego klienta dostawca OLE DB implementuje zestaw wierszy przy użyciu kursor serwera.
Następujące właściwości zestaw wierszy bezpośredniego SQL Server macierzystego klienta dostawca 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óra wykazuje właściwości DBPROP_IRowsetScroll i DBPROP_IRowsetChange będzie wierszy zakładki wykazujące natychmiastowe aktualizowanie zachowanie.Inne właściwości wzajemnie się wykluczają.Na przykład zestaw wierszy wykazujące DBPROP_OTHERINSERT nie może zawierać zakładki.
Identyfikator właściwości |
Wartość |
Zachowanie wierszy |
---|---|---|
DBPROP_SERVERCURSOR |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Nie można zaktualizować SQL Server danych za pomocą zestawu zestaw wierszy.Zestaw wierszy jest sekwencyjnie, uzupełniające 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 |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Nie można zaktualizować SQL Server danych 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 |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Nie można zaktualizować SQL Server danych za pomocą zestawu zestaw wierszy.Zestaw wierszy jest sekwencyjnie, uzupełniające 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 lub DBPROP_OTHERUPDATEDELETE |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Nie można zaktualizować SQL Server danych 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 |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Nie można zaktualizować SQL Server danych 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 Jeśli indeks istnieje odwołanie kolumny. DBPROP_OTHERINSERT nie może być VARIANT_TRUE, jeśli zestaw wierszy zawiera zakładki.Próby utworzenia zestawu zestaw wierszy z tym właściwość widoczności i zakładki powoduje błąd. |
DBPROP_IRowsetLocate lub DBPROP_IRowsetScroll |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Nie można zaktualizować SQL Server danych za pomocą zestawu zestaw wierszy.Zestaw wierszy obsługuje przewijania i pobieranie w dowolnym kierunku.Zakładki i pozycjonowanie bezwzględne poprzez IRowsetLocate interfejs są obsługiwane w zestawie zestaw wierszy.Tekst polecenia mogą zawierać ORDER BY klauzula. DBPROP_IRowsetLocate i DBPROP_IRowsetScroll wymagają zakładki w zestawie zestaw wierszy.Próby utworzenia zestawu zestaw wierszy z zakładki i DBPROP_OTHERINSERT ustaw wartość inna niż VARIANT_TRUE powoduje błąd. |
DBPROP_IRowsetChange lub DBPROP_IRowsetUpdate |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Można aktualizować SQL Server danych za pomocą zestawu zestaw wierszy.Zestaw wierszy jest sekwencyjnie, uzupełniające do przodu przewijania i pobieranie tylko.Pozycjonowanie względne do wiersza jest obsługiwany.Wszystkie polecenia obsługujące aktualizowalna kursorów może obsługiwać tych interfejsów. |
DBPROP_IRowsetLocate lub DBPROP_IRowsetScroll i DBPROP_IRowsetChange lub DBPROP_IRowsetUpdate |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Można aktualizować SQL Server danych za pomocą zestawu zestaw wierszy.Zestaw wierszy obsługuje przewijania i pobieranie w dowolnym kierunku.Zakładki i pozycjonowanie bezwzględne poprzez 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 danych za pomocą zestawu zestaw wierszy.Zestaw wierszy obsługuje do przodu przewijanie tylko.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać ORDER BY klauzula Jeśli indeks istnieje odwołanie kolumny. DBPROP_IMMOBILEROWS jest dostępna tylko w zestawów wierszy, które można pokazać SQL Server wiersze wstawione za pomocą poleceń innych sesji lub przez innych użytkowników.Próby otwarcia zestawu zestaw wierszy z właściwość VARIANT_FALSE ustawiono na wszystkich zestaw wierszy, dla którego DBPROP_OTHERINSERT nie może być VARIANT_TRUE powoduje błąd. |
DBPROP_REMOVEDELETED |
WARTOŚĆ INNA NIŻ VARIANT_TRUE |
Nie można zaktualizować SQL Server danych za pomocą zestawu zestaw wierszy.Zestaw wierszy obsługuje do przodu przewijanie tylko.Pozycjonowanie względne do wiersza jest obsługiwany.Tekst polecenia mogą zawierać ORDER BY klauzula , chyba że ograniczone przez inną właściwość. |
A SQL Server macierzystego klienta OLE DB dostawca zestaw wierszy obsługiwane przez kursor serwera można łatwo utworzyć na SQL Server tabela bazowa lub widoku za pomocą IOpenRowset::OpenRowset metoda.Określ nazwę tabela lub widoku, przekazując wymagane zestaw wierszy zestawów właściwość w rgPropertySets parametru.
Tekst polecenia, który tworzy zestawu wierszy jest ograniczona, gdy konsumenta wymaga, że zestaw wierszy ma być obsługiwane przez kursor serwera.W szczególności tekst polecenia jest ograniczone do pojedynczej instrukcja SELECT zwraca wynik pojedynczego zestawu zestaw wierszy lub procedura składowana, która implementuje pojedynczą instrukcję SELECT zwracać wynik pojedynczego zestawu zestaw wierszy.
Te dwie tabele Pokaż mapowania różne właściwości OLE DB i modeli kursor.Pokazują one również należy ustawić właściwości zestawu zestaw wierszy, które używają typu kursor modelu.
Każda komórka w tabela zawiera wartość właściwość zestaw wierszy kursor określonego modelu.Typ danych właściwości zestaw wierszy wymienione wcześniej w tym temacie jest VT_BOOL i wartością domyślną jest VARIANT_FALSE.W tabela są używane następujące symbole.
F = wartość domyślną (VARIANT_FALSE)
T = VARIANT_TRUE
-= VARIANT_TRUE lub VARIANT_FALSE
Użyć typu kursor modelu, zlokalizuj kolumna odpowiadający wzorowi kursor i znaleźć wszystkie właściwości zestawu zestaw wierszy z wartością 'T' kolumna.Wartość inna niż VARIANT_TRUE używać kursor określonego modelu, należy ustawić te właściwości zestawu zestaw wierszy.Właściwości zestawu zestaw wierszy z '-' jak zestaw wartość VARIANT_TRUE lub VARIANT_FALSE.
Modele właściwości i kursor zestawu wierszy |
Default result zestaw (RO) |
Szybkie do przodu- tylko (RO) |
Statyczne (RO) |
Zestaw kluczy napędzana (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 |
Modele właściwości i kursora zestawu wierszy |
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 wybranego 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 wymienionych w poprzednich tabelach.Dzieli właściwość tych dwóch podgrup, w zależności od wartości flagi — wymagane (T F) lub opcjonalne (-) — właściwość każdego zestawu zestaw wierszy.Dla każdego modelu kursor start w pierwszej tabela i przenosi od lewej do prawej., porównanie wartości właściwości w dwóch podgrup wartości odpowiednich właściwości w tym kolumna.Model kursor, nie niezgodności wymagane właściwości i najmniej wybrany numer niezgodności z właściwości opcjonalnych.Jeśli istnieje więcej niż jeden model kursor, wybierany jest po lewej stronie.
SQL ServerRozmiar bloku kursora
Po SQL Server obsługuje kursor SQL Server macierzystego klienta OLE DB dostawca zestawu zestaw wierszy, liczba elementów w wierszu obsługiwać parametr tablicy IRowset::GetNextRows lub IRowsetLocate::GetRowsAt metody definiuje rozmiar blok kursor.Wiersze oznaczone uchwyty w tablicy są członkami blok kursor.
Wspieranie zakładki zestawów wierszy, uchwytów wierszy pobierane za pomocą IRowsetLocate::GetRowsByBookmark metoda definiowania członków blok kursor.
Niezależnie od metoda używane do wypełniania zestaw wierszy i formularz SQL Server kursora blok blok kursor jest aktywny, aż do następnej metoda pobierania zestaw wierszy jest wykonywane na zestawie zestaw wierszy.