Dynamiczny
W tym temacie opisano zestawy dynamiczne i omówiono ich dostępności.
[!UWAGA]
Ten temat dotyczy klas MFC ODBC, łącznie z CRecordset.Uzyskać zestawy dynamiczne klas obiektów DAO, zobacz CDaoRecordset.DAO możesz 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 dynamiczny (zwykle zwane dynamiczny zestaw wyników) synchronizowany ze źródłem danych w następujący sposób.W orodowisku wielodostępnym innych użytkowników może być edycji lub usuwania rekordów, które są w sieci dynamiczny lub dodawania rekordów do tabeli, którą reprezentuje Twój dynamiczny.Rekordy aplikacja dodaje lub usuwa z zestawu rekordów są odzwierciedlane w sieci dynamiczny.Rekordy do tabeli dodać innych użytkowników nie będą odzwierciedlane w Twój dynamiczny, aż odbudować pobierany przez wywołanie jego Requery funkcji składowej.Inni użytkownicy, usuwanie rekordów, kod MFC pomija usunięcia w twoim zestawie rekordów.Innym użytkownikom edytowania zmiany istniejących rekordów są odzwierciedlane w Twój dynamiczny, jak szybko przewiń do dotkniętych rekordu.
Podobnie zmian wprowadzonych do rekordów, dynamiczny zestaw wyników są odzwierciedlane w zestawy dynamiczne używany przez innych użytkowników.Rekordy, 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 innych użytkowników.Jeśli masz wiele połączeń z bazą danych (wielu CDatabase obiektów), zestawy rekordów skojarzonych z tych połączeń mają taki sam status jak zestawy rekordów innych użytkowników.
Zestawy dynamiczne są najbardziej przydatne, gdy dane muszą być dynamiczne, jak (na przykład) w systemie rezerwacji linii lotniczych.
[!UWAGA]
Aby użyć zestawy dynamiczne, musi mieć sterownika ODBC dla źródła danych, która obsługuje zestawy dynamiczne i nie zostanie 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, przekazać CRecordset::dynaset jako pierwszy parametr Otwórz funkcji składowej obiektu recordset.
[!UWAGA]
Dla aktualizowalnej zestawy dynamiczne, sterownik ODBC musi obsługiwać albo instrukcji update pozycjonowane lub :: SQLSetPos funkcji interfejsu API ODBC.Jeśli są obsługiwane zarówno używa MFC :: SQLSetPos w celu zwiększenia wydajności.
Dostępność zestawy dynamiczne
Klas MFC bazy danych obsługują zestawy dynamiczne, jeśli są spełnione następujące wymagania:
Biblioteka kursorów ODBC DLL nie może być używany dla tego źródła danych.
Jeśli używana jest Biblioteka kursorów, maski niektóre funkcje podstawowego sterownika ODBC, niezbędnego do obsługi dynamicznego.Jeśli chcesz użyć zestawy dynamiczne (i sterownik ODBC ma funkcje wymagane dla zestawy dynamiczne, jak opisano w dalszej części tej sekcji), może spowodować MFC nie 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ą nazywane kursory.Kursor jest mechanizmem używanym do śledzenia zmian w jego pozycji w zestawie rekordów.
Sterownik ODBC dla źródła danych musi obsługiwać kursory zestawu kluczy.
Kursory keyset zarządzać danymi z tabeli przez pobieranie i przechowywanie zestawu kluczy.Klucze są używane do uzyskania bieżących danych z tabeli, gdy użytkownik przewija do określonego rekordu.Aby ustalić, czy sterownik udostępnia tę obsługę, call :: SQLGetInfo funkcji ODBC API z SQL_SCROLL_OPTIONS parametru.
Jeśli próby otwarcia pobierany bez obsługi keyset get CDBException wartość zwracany kod AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED.
Sterownik ODBC dla źródła danych musi obsługiwać pobieranie rozszerzonego.
Pobieranie rozszerzonego jest zdolność do przewijania do tyłu, jak również przekazywać za pośrednictwem rekordy wynikowe kwerendy SQL.Aby sprawdzić, czy sterownik obsługuje taką możliwość, wywołać :: SQLGetFunctions funkcji ODBC API z SQL_API_SQLEXTENDEDFETCH parametru.
Jeśli chcesz aktualizować zestawy dynamiczne (lub migawki w tej kwestii), sterownik ODBC również musi obsługiwać albo :: SQLSetPos funkcji interfejsu API ODBC lub spozycjonowanego aktualizacje.:: SQLSetPos funkcja umożliwia MFC do aktualizacji źródła danych bez wysyłania instrukcji SQL.Jeżeli usługa ta jest dostępna, MFC używa go względem dokonywania aktualizacji za pomocą programu SQL.Aby sprawdzić, czy sterownik obsługuje :: SQLSetPos, call :: SQLGetInfo z SQL_POS_OPERATIONS parametru.
Aktualizacje pozycjonowane użyć składni SQL (formularza Gdzie bieżący z <cursorname>) do identyfikowania określonego wiersza w tabeli w źródle danych.Aby sprawdzić, czy sterownik obsługuje aktualizacje pozycjonowane, wywołać :: SQLGetInfo z SQL_POSITIONED_STATEMENTS parametru.
Ogólnie zestawy dynamiczne MFC (ale nie tylko do przodu zestawy rekordów) wymaga sterownika ODBC z poziomu 2 API zgodność.Sterownik źródła danych jest zgodny z poziomu 1 zestawu interfejsów API, można nadal używać migawki zarówno 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, jeśli obsługuje pobieranie rozszerzonego i kursory zestawu kluczy.Aby uzyskać więcej informacji na temat poziomów zgodności ODBC, zobacz ODBC.
[!UWAGA]
Jeśli chcesz użyć zarówno migawek i zestawy dynamiczne, należy utworzyć je na dwóch różnych CDatabase obiektów (dwóch różnych połączeń).
W przeciwieństwie do migawki, które wykorzystują pośrednie magazynowanie utrzymywane przez Biblioteka kursorów ODBC, zestawy dynamiczne fetch rekordu bezpośrednio ze źródła danych, jak szybko przewiń do niego.Dzięki temu rekordy pierwotnie wybrany przez dynamiczny, zsynchronizowane ze źródłem danych.
Lista sterowników ODBC, zawarte w tej wersji programu Visual C++ i informacje dotyczące uzyskiwania dodatkowych sterowników, zobacz Listy sterowników ODBC.