Udostępnij za pośrednictwem


Zestaw dynamiczny

W tym temacie opisano zestawy dynamiczne i omówiono ich się w hotelu.

[!UWAGA]

Ten temat dotyczy klasy MFC ODBC, w tym CRecordset.Aby uzyskać informacji na temat dynamicznych klas obiektów DAO, zobacz CDaoRecordset.Z obiektów DAO można otworzyć dynamicznego zestawy rekordów.

Dynamiczny zestaw wyników jest zestaw rekordów z właściwości dynamicznych.Podczas swojego życia obiektu recordset w trybie dynamicznego (zwykle zwane dynamiczny zestaw wyników) jest synchronizowany ze źródłem danych w następujący sposób.W środowisku wielodostępnym innych użytkowników może być edycji lub usuwania rekordów, które znajdują się w sieci dynamiczny lub dodania rekordów do tabeli, którą reprezentuje swój dynamiczny.Rekordy aplikacji dodaje lub usuwa z tego zestawu rekordów są odzwierciedlane w swojej dynamiczny.Rekordy do tabeli dodać innych użytkowników nie będą odzwierciedlane w swojej dynamiczny, dopóki odbudować pobierany przez wywołanie jego Requery funkcji składowej.Inni użytkownicy, usuwanie rekordów, MFC kod pomija usunięcia w twoim zestawie rekordów.Innych użytkowników zmiany edycji istniejących rekordów są odzwierciedlane w swojej dynamiczny, tak szybko, jak tylko podczas przewijania do dotkniętych rekordu.

Podobnie zmiany wprowadzone do rekordów w dynamiczny zestaw wyników są odzwierciedlane w zestawy dynamiczne używane przez innych użytkowników.Rekordów, które można dodać nie są odzwierciedlane w zestawy dynamiczne innych użytkowników, dopóki one requery ich zestawy dynamiczne.Rekordy usuwane są oznaczone jako "usunięte" w zestawy rekordów innym użytkownikom.Jeśli masz wiele połączeń z tej samej bazy danych (wielu CDatabase obiektów), zestawy rekordów skojarzonych z tych połączeń klientów, mają taki sam status jak zestawy rekordów innych użytkowników.

Zestawy dynamiczne są najbardziej przydatne, gdy dane muszą być dynamiczne, jako (na przykład) w systemie rezerwacji linii lotniczych.

[!UWAGA]

Aby korzystać z dynamicznych, musi mieć sterownika ODBC dla źródła danych, który obsługuje zestawy dynamiczne i nie musi być załadowana Biblioteka kursorów ODBC.Aby uzyskać więcej informacji, zobacz Dostępność zestawy dynamiczne.

Aby określić, że zestaw rekordów jest dynamiczny zestaw wyników, należy przekazać CRecordset::dynaset jako pierwszy parametr do Otwórz funkcji składowej obiektu recordset.

[!UWAGA]

Zestawy dynamiczne mogą być aktualizowane, sterownik ODBC musi obsługiwać albo instrukcji update pozycjonowane lub :: SQLSetPos funkcji interfejsu API ODBC.Jeśli oba są obsługiwane, używa MFC :: SQLSetPos w celu zwiększenia wydajności.

Dostępność zestawy dynamiczne

Klasami baz danych MFC obsługuje zestawów dynamicznych, jeśli są spełnione następujące warunki:

  • Biblioteka kursorów ODBC DLL nie może być używany dla tego źródła danych.

    Jeśli jest używana Biblioteka kursorów, maski niektóre funkcje podstawowy sterownik ODBC, co jest niezbędne do obsługi dynamicznego.Jeśli chcesz użyć zestawy dynamiczne (i sterownika ODBC ma funkcje wymagane dla dynamicznych, jak opisano w dalszej części tej sekcji), mogą powodować MFC nie mógł załadować biblioteki kursora, podczas tworzenia CDatabase obiektu.Aby uzyskać więcej informacji, zobacz ODBC i OpenEx lub Otwórz funkcji składowej klasy CDatabase.

    W terminologii ODBC zestawy dynamiczne i migawki są określane jako kursory.Kursor jest mechanizmem używanym do śledzenia danych jego położenie w zestawie rekordów.

  • Sterownik ODBC dla źródła danych musi obsługiwać kursory.

    Kursory zarządzać danymi z tabeli przez pobieranie i przechowywanie zestawu kluczy.Klucze są używane do uzyskania bieżące dane z tabeli, gdy użytkownik przewija do określonego rekordu.Aby określić, czy sterownik udostępnia tę obsługę, wywołanie :: SQLGetInfo funkcji interfejsu API ODBC z SQL_SCROLL_OPTIONS parametru.

    Jeśli podczas próby otwarcia dynamiczny bez obsługi zestawu kluczy, Ci CDBException z wartością kod zwrotny AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED.

  • Sterownik ODBC dla źródła danych musi obsługiwać rozszerzone pobierania.

    Pobieranie rozszerzonego jest zdolność do przewijania do tyłu, jak również przekazywać za pośrednictwem rekordy wynikowe kwerendy SQL.Aby ustalić, czy sterownik obsługuje taką możliwość, wywołanie :: SQLGetFunctions funkcji interfejsu API ODBC z SQL_API_SQLEXTENDEDFETCH parametru.

Jeśli chcesz można aktualizować zestawy dynamiczne (lub migawki, w tym zakresie), sterownik ODBC musi obsługiwać albo :: SQLSetPos funkcji interfejsu API ODBC lub pozycjonowane aktualizacji.:: SQLSetPos dzięki funkcji MFC zaktualizować źródło danych bez wysyłania instrukcji SQL.Jeśli usługa ta jest dostępna, MFC używa go zamiast dokonywanie aktualizacji za pomocą programu SQL.Aby ustalić, czy sterownik obsługuje :: SQLSetPos, call :: SQLGetInfo z SQL_POS_OPERATIONS parametru.

Aktualizacje pozycjonowane użyć składni SQL (formularza WHERE CURRENT OF<cursorname>) do identyfikowania określonego wiersza w tabeli w źródle danych.Aby ustalić, czy sterownik obsługuje aktualizacje pozycjonowane, wywołanie :: SQLGetInfo z SQL_POSITIONED_STATEMENTS parametru.

Ogólnie rzecz biorąc zestawy dynamiczne MFC (ale nie Progresywne zestawy rekordów) wymaga sterownika ODBC z poziomu 2 API zgodność.Poziom 1 zestawu interfejsów API spełnia sterownika źródła danych, można nadal używać migawek zarówno można aktualizować i tylko do odczytu i Progresywne zestawy rekordów, ale nie zestawy dynamiczne.Jednakże sterownik poziomu 1 może obsługiwać zestawy dynamiczne czy obsługuje pobieranie rozszerzonego i kursory.Aby uzyskać więcej informacji na temat poziomów zgodności ODBC, zobacz ODBC.

[!UWAGA]

Jeśli chcesz użyć zarówno migawki i zestawy dynamiczne, należy utworzyć je na dwóch różnych CDatabase obiektów (dwa różne połączenia).

W przeciwieństwie do migawki, które używają pośrednie magazynowanie utrzymywane przez Biblioteka kursorów ODBC, zestawy dynamiczne pobieranie rekordu bezpośrednio ze źródła danych, tak szybko, jak tylko podczas przewijania do niego.Dzięki temu rekordy pierwotnie wybrany przez dynamiczny zsynchronizowane ze źródłem danych.

Zobacz listę sterowników ODBC uwzględnione w tej wersji programu Visual C++ oraz informacje na temat uzyskiwania dodatkowych sterowników, Lista sterowników ODBC.

Zobacz też

Koncepcje

Open Database Connectivity (ODBC)