ODBC: biblioteka kursorów ODBC
W tym temacie opisano Biblioteka kursorów ODBC i wyjaśnia, jak z niego korzystać.Aby uzyskać więcej informacji, zobacz:
Biblioteka kursorów i poziom sterowniki 1 ODBC
Aktualizacje pozycjonowane i kolumny sygnatury czasowej
Użycie Biblioteka kursorów
Biblioteka kursorów ODBC jest biblioteki dołączanej (dynamicznie DLL), która znajduje się między Menedżera sterowników ODBC i sterownika.W kategoriach ODBC sterownik obsługuje kursor, aby śledzić jego położenie w zestawie rekordów.Kursor wskazuje położenie w zestawie rekordów, do którego już zostały przewinięte — bieżącego rekordu.
Biblioteka kursorów i poziom sterowniki 1 ODBC
Biblioteka kursorów ODBC daje sterowniki poziomu 1 następujące nowe funkcje:
Przewijanie do przodu i do tyłu.Poziom 2 sterowników nie ma potrzeby Biblioteka kursorów, ponieważ już są przewijane.
Obsługa migawek.Biblioteka kursorów zarządza bufor zawierający rekordy migawki.Bufor ten odzwierciedla usunięcia programu i edycji rekordów, ale nie uzupełnień, usunięć lub zmiany innych użytkowników.W związku z tym migawka jest tylko jak Biblioteka kursorów buforu aktualne.Bufor również nie odzwierciedla swoje własne dodatki do czasu wywołania Requery.Zestawy dynamiczne nie należy używać Biblioteka kursorów.
Biblioteka kursorów daje migawek (Kursory statyczne) nawet jeśli nie są zazwyczaj obsługiwane przez sterownik.Jeśli sterownik obsługuje już statyczne kursory, nie trzeba załadować biblioteki kursor w celu uzyskania wsparcia migawki.Jeśli używasz Biblioteka kursorów, można użyć tylko migawki i Progresywne zestawy rekordów.Jeśli sterownik obsługuje zestawy dynamiczne (KEYSET_DRIVEN kursorów) i chcesz ich użyć, nie wolno używać Biblioteka kursorów.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), chyba że sterownik obsługuje zarówno.
Aktualizacje pozycjonowane i kolumny sygnatury czasowej
[!UWAGA]
Źródła danych ODBC są dostępne za pośrednictwem klas MFC ODBC, zgodnie z opisem w tym temacie lub za pośrednictwem klas MFC obiektów DAO (Data Access).
[!UWAGA]
Jeśli sterownik ODBC obsługuje SQLSetPos, które MFC używa układania proporcjonalnego, ten temat nie dotyczy.
Większość sterowników poziomu 1 nie obsługują aktualizacje pozycjonowane.W przypadku sterowników polegać na bibliotece kursorów do emulowania możliwości sterowniki poziomu 2 w tym zakresie.Biblioteka kursorów emuluje technicznej w zakresie aktualizacji pozycjonowane wykonując wyszukiwanych aktualizacji na polach niezmiennej.
W niektórych przypadkach zestaw rekordów może zawierać kolumny sygnatury czasowej jako jedno z tych pól niezmiennej.Dwa problemy pojawiają się w użyciu MFC zestawy rekordów z tabel, które zawierają kolumny sygnatury czasowej.
Pierwszy numer dotyczy migawek można aktualizować na tabelach z kolumny sygnatury czasowej.Jeśli tabela, z którą jest powiązany z migawki zawiera kolumny sygnatury czasowej, należy zadzwonić Requery po wywołaniu edytować i Aktualizacja.W przeciwnym razie nie można ponownie edytować ten sam rekord.Gdy wywołanie edytować a następnie Aktualizacja, zapisywania rekordu w źródle danych i aktualizacji kolumny sygnatury czasowej.Jeśli nie zostanie wywołana Requery, wartość sygnatury czasowej rekordu w migawkę nie zgadza się odpowiednie sygnatury czasowej w źródle danych.Podczas próby ponownie zaktualizować rekord źródła danych może nie zezwalają na aktualizację ze względu na niezgodność.
Druga kwestia dotyczy ograniczenia klasy CTime z RFX_Date funkcji transferu informacji datę i godzinę do lub z tabeli.Przetwarzanie CTime obiekt nakłada pewne dodatkowe obciążenie związane w formie dodatkowego przetwarzania podczas transferu danych.Zakres dat CTime obiektów może być również zbyt ograniczające dla niektórych aplikacji.Nowa wersja RFX_Date funkcja przyjmuje ODBC TIMESTAMP_STRUCT parametr zamiast CTime obiektu.Aby uzyskać więcej informacji, zobacz RFX_Date w makra i Globals w Odwołanie MFC.
Użycie Biblioteka kursorów
Kiedy łączysz się ze źródłem danych — wywołując CDatabase::OpenEx lub CDatabase::Open — można określić, czy ma być używana Biblioteka kursorów dla źródła danych.Jeśli będzie tworzenia migawek na to źródło danych, należy określić CDatabase::useCursorLib opcji w dwOptions parametru do OpenEx lub określić TRUE dla bUseCursorLib parametr Otwórz (wartością domyślną jest TRUE).Jeśli Twój sterownik ODBC obsługuje zestawy dynamiczne i chcesz otworzyć zestawy dynamiczne w źródle danych, nie należy używać Biblioteka kursorów (maski niektóre funkcje sterownika potrzebne do dynamicznych).W takim przypadku nie zostanie określony CDatabase::useCursorLib w OpenEx lub określić FALSE dla bUseCursorLib parametr w Otwórz.