Udostępnij za pośrednictwem


ODBC: Biblioteka kursorów ODBC

W tym temacie opisano Biblioteka kursorów ODBC i wyjaśniono, jak go używać.Aby uzyskać więcej informacji zobacz:

  • Biblioteka kursorów i sterowników ODBC na poziomie 1

  • Aktualizacje pozycjonowane i kolumny sygnatury czasowej

  • Przy użyciu Biblioteka kursorów

Biblioteka kursorów ODBC jest biblioteki dołączanej (dynamicznie DLL), który znajduje się pomiędzy Menedżerem sterowników ODBC i sterownika.W kategoriach ODBC sterownika utrzymuje kursor, aby śledzić swoje stanowisko w zestawie rekordów.Kursor oznacza pozycję w zestawie rekordów, do której były już przewijane — bieżącego rekordu.

Biblioteka kursorów i sterowników ODBC na poziomie 1

Biblioteka kursorów ODBC daje sterowniki poziomu 1 następujące nowe funkcje:

  • Przewijanie do przodu i Wstecz.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 usuwania i edycji rekordów, ale nie uzupełnień, usunięć lub przez innych użytkowników tego programu.Dlatego migawki jest tylko w buforze Biblioteka kursorów.Bufor również nie odzwierciedla własne uzupełnień do czasu wywołania Requery.Zestawy dynamiczne nie należy używać biblioteki kursora.

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 uzyskać wsparcie migawki.Jeśli używasz Biblioteka kursorów, można użyć tylko migawek i Progresywne zestawy rekordów.Jeśli sterownik obsługuje zestawy dynamiczne (kursory KEYSET_DRIVEN) i chcesz ich użyć, nie wolno używać Biblioteka kursorów.Jeśli chcesz użyć zarówno migawek i zestawy dynamiczne, należy utworzyć je na dwóch różnych CDatabase obiekty (dwóch różnych połączeń), 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, jak opisano w tym temacie lub za pośrednictwem klas MFC obiektu DAO (Data Access).

[!UWAGA]

Jeśli sterownik ODBC obsługuje SQLSetPos, które MFC używa, jeżeli jest dostępna, ten temat nie dotyczy.

Większość sterowników poziom 1 nie obsługują aktualizacji pozycjonowane.Takie sterowniki polegać na Biblioteka kursorów emulujący możliwości sterowników na poziomie 2 w tym zakresie.Biblioteka kursorów emuluje obsługa aktualizacji pozycjonowane wykonując wyszukiwany aktualizacji pól niezmienność.

W niektórych przypadkach zestaw rekordów może zawierać kolumnę sygnatury czasowej, jako jeden z tych pól niezmienność.Dwa zagadnienia pojawiają się w użyciu MFC zestawy rekordów z tabel, które zawierają kolumny sygnatury czasowej.

Pierwszy problem dotyczy można aktualizować migawek na tabelach z kolumny sygnatury czasowej.Jeśli tabela, z którym powiązany jest migawkę zawiera kolumny sygnatury czasowej, należy wywołać Requery po wywołaniu Edytuj i Aktualizacja.Jeśli nie, nie można edytować ten sam rekord ponownie.Po wywołaniu Edytuj a Aktualizacja, zapisywania rekordu w źródle danych i kolumny sygnatury czasowej jest aktualizowany.Jeśli nie wywoła Requery, wartość sygnatury czasowej rekordu w migawkę pasuje już odpowiednie sygnatury czasowej do źródła danych.Podczas próby aktualizacji rekordu źródła danych może uniemożliwić aktualizację ze względu na niezgodność.

Drugi problem dotyczy ograniczenia klasy CTime z RFX_Date funkcji transferu informacji datę i godzinę do lub z tabeli.Przetwarzanie CTime obiekt nakłada pewne narzutów w formie dodatkowych pośredniego przetwarzania podczas transferu danych.Zakres dat CTime obiektów również może być zbyt ograniczenie 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 makr i Globals w Odniesienia MFC.

Przy użyciu Biblioteka kursorów

Po połączeniu ze źródłem danych — wywołując CDatabase::OpenEx lub CDatabase::Open — można określić, czy użyć Biblioteka kursorów dla źródła danych.Będzie się tworzenia migawek tego źródła danych, określić CDatabase::useCursorLib opcji w dwOptions parametr OpenEx lub określić TRUE dla bUseCursorLib parametr Otwórz (wartość domyślna to TRUE).Jeśli sterownik ODBC obsługuje zestawy dynamiczne i chcesz otworzyć zestawy dynamiczne w źródle danych, nie należy używać Biblioteka kursorów (maski to niektóre funkcje sterownika potrzebne dla zestawy dynamiczne).W takim przypadku nie zostanie CDatabase::useCursorLib w OpenEx lub określić FALSE do bUseCursorLib parametr w Otwórz.

Zobacz też

Koncepcje

Podstawowe informacje O ODBC