Zestaw rekordów (ODBC)

Ten temat dotyczy klas MFC ODBC.

Obiekt CRecordset reprezentuje zestaw rekordów wybranych ze źródła danych. Rekordy mogą pochodzić z:

  • Tabela.

  • Zapytanie.

  • Procedura składowana, która uzyskuje dostęp do co najmniej jednej tabeli.

Przykładem zestawu rekordów opartego na tabeli jest "wszyscy klienci", który uzyskuje dostęp do tabeli Customer. Przykładem zapytania jest "wszystkie faktury dla Joe Smitha". Przykładem zestawu rekordów na podstawie procedury składowanej (czasami nazywanej wstępnie zdefiniowanym zapytaniem) jest "wszystkie konta delinquent", które wywołuje procedurę składowaną w bazie danych zaplecza. Zestaw rekordów może łączyć co najmniej dwie tabele z tego samego źródła danych, ale nie tabele z różnych źródeł danych.

Uwaga

Niektóre sterowniki ODBC obsługują widoki bazy danych. Widok w tym sensie jest zapytaniem pierwotnie utworzonym za pomocą instrukcji SQL CREATE VIEW .

Możliwości zestawu rekordów

Wszystkie obiekty zestawu rekordów współdzielą następujące możliwości:

  • Jeśli źródło danych nie jest tylko do odczytu, możesz określić, że zestaw rekordów może być aktualizowalny, dołączany lub tylko do odczytu. Jeśli zestaw rekordów można aktualizować, możesz wybrać pesymistyczne lub optymistyczne metody blokowania , pod warunkiem, że sterownik dostarcza odpowiednią obsługę blokady. Jeśli źródło danych jest tylko do odczytu, zestaw rekordów będzie tylko do odczytu.

  • Funkcje składowe można wywoływać, aby przewijać wybrane rekordy.

  • Rekordy można filtrować, aby ograniczyć wybrane rekordy z tych dostępnych.

  • Rekordy można sortować w kolejności rosnącej lub malejącej na podstawie co najmniej jednej kolumny.

  • Zestaw rekordów można sparametryzować , aby zakwalifikować wybór zestawu rekordów w czasie wykonywania.

Migawki i zestawy dynamiczne

Istnieją dwa główne typy zestawów rekordów: migawki i zestawy dynamicznych. Oba są obsługiwane przez klasę CRecordset. Każda z nich ma wspólne cechy wszystkich zestawów rekordów, ale każda z nich rozszerza wspólną funkcjonalność we własny wyspecjalizowany sposób. Migawki zapewniają statyczny widok danych i są przydatne w przypadku raportów i innych sytuacji, w których chcesz wyświetlić dane w określonym czasie. Zestawy dynaset są przydatne, gdy chcesz, aby aktualizacje wprowadzone przez innych użytkowników były widoczne w zestawie rekordów bez konieczności ponownego pisania zapytania lub odświeżania zestawu rekordów. Migawki i dynamiczne zestawy mogą być aktualizowane lub tylko do odczytu. Aby odzwierciedlić rekordy dodane lub usunięte przez innych użytkowników, wywołaj metodę CRecordset::Requery.

CRecordset Umożliwia również korzystanie z dwóch innych typów zestawów rekordów: zestawów rekordów dynamicznych i zestawów rekordów tylko do przodu. Dynamiczne zestawy rekordów są podobne do dynamicznych; jednak dynamiczne zestawy rekordów odzwierciedlają wszystkie rekordy dodane lub usunięte bez wywoływania metody CRecordset::Requery. Z tego powodu dynamiczne zestawy rekordów są zwykle kosztowne w odniesieniu do czasu przetwarzania w systemie DBMS, a wiele sterowników ODBC nie obsługuje ich. Natomiast zestawy rekordów tylko do przodu zapewniają najbardziej wydajną metodę dostępu do danych dla zestawów rekordów, które nie wymagają aktualizacji ani przewijania do tyłu. Na przykład można użyć zestawu rekordów tylko do przekazywania, aby migrować dane z jednego źródła danych do innego, gdzie wystarczy przejść przez dane w kierunku do przodu. Aby użyć zestawu rekordów tylko do przekazywania, należy wykonać oba następujące czynności:

  • Przekaż opcję CRecordset::forwardOnly jako parametr nOpenType funkcji składowej Open .

  • Określ CRecordset::readOnly w parametrze dwOptions parametru Open.

    Uwaga

    Aby uzyskać informacje o wymaganiach sterowników ODBC dotyczących obsługi dynamicznych zestawów, zobacz ODBC. Aby uzyskać listę sterowników ODBC uwzględnionych w tej wersji programu Visual C++ i uzyskać informacje na temat uzyskiwania dodatkowych sterowników, zobacz lista sterowników ODBC.

Zestawy rekordów

Dla każdej odrębnej tabeli, widoku lub procedury składowanej, do której chcesz uzyskać dostęp, zazwyczaj definiuje się klasę pochodzącą z CRecordsetklasy . (Wyjątek to sprzężenia bazy danych, w którym jeden zestaw rekordów reprezentuje kolumny z co najmniej dwóch tabel). Podczas tworzenia klasy zestawu rekordów należy włączyć mechanizm wymiany pól rekordów (RFX) lub mechanizm wymiany pól zbiorczych (Bulk RFX), który jest podobny do mechanizmu wymiany danych dialogowych (DDX). RFX i Bulk RFX upraszczają transfer danych ze źródła danych do zestawu rekordów; RFX dodatkowo przesyła dane z zestawu rekordów do źródła danych. Aby uzyskać więcej informacji, zobacz Rekordy Exchange (RFX) i Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC).

Obiekt zestawu rekordów zapewnia dostęp do wszystkich wybranych rekordów. Przewijasz wiele wybranych rekordów przy użyciu CRecordset funkcji składowych, takich jak MoveNext i MovePrev. Jednocześnie obiekt zestawu rekordów reprezentuje tylko jeden z wybranych rekordów— bieżący rekord. Pola bieżącego rekordu można zbadać, deklarując zmienne składowe klasy rekordów odpowiadające kolumnom tabeli lub rekordom wynikowym z zapytania bazy danych. Aby uzyskać informacje o elementach członkowskich danych zestawu rekordów, zobacz Zestaw rekordów: architektura (ODBC).

W poniższych tematach opisano szczegóły używania obiektów zestawu rekordów. Tematy są wymienione w kategoriach funkcjonalnych i naturalnej kolejności przeglądania, aby umożliwić sekwencyjne odczytywanie.

Tematy dotyczące mechaniki otwierania, odczytywania i zamykania zestawów rekordów

Tematy dotyczące mechaniki modyfikowania zestawów rekordów

Tematy dotyczące nieco bardziej zaawansowanych technik

Tematy dotyczące działania zestawów rekordów

Zobacz też

Open Database Connectivity (ODBC)
Zużycie MFC ODBC
Transakcja (ODBC)