Zestaw rekordów: architektura (ODBC)
Ten temat dotyczy klas MFC ODBC.
W tym temacie opisano składowe danych, które składają się na architekturę obiektu zestawu rekordów:
Uwaga
Ten temat dotyczy obiektów pochodnych, CRecordset
z których pobieranie wierszy zbiorczych nie zostało zaimplementowane. Jeśli pobieranie wierszy zbiorczych jest implementowane, architektura jest podobna. Aby zrozumieć różnice, zobacz Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC).
Przykładowa klasa
Uwaga
Kreator klienta MFC ODBC nie jest dostępny w programie Visual Studio 2019 i nowszych wersjach. Nadal można ręcznie utworzyć użytkownika.
W przypadku używania Kreatora konsumenta MFC ODBC z Kreatora dodawania klas w celu zadeklarowania klasy zestawu rekordów pochodzącej z CRecordset
klasy , wynikowa klasa ma ogólną strukturę pokazaną w następującej prostej klasie:
class CCourse : public CRecordset
{
public:
CCourse(CDatabase* pDatabase = NULL);
...
CString m_strCourseID;
CString m_strCourseTitle;
CString m_strIDParam;
};
Na początku klasy kreator zapisuje zestaw składowych danych pól. Podczas tworzenia klasy należy określić co najmniej jeden składowy danych pól. Jeśli klasa jest sparametryzowana, ponieważ przykładowa klasa to (z składową m_strIDParam
danych), należy ręcznie dodać składowe danych parametrów. Kreator nie obsługuje dodawania parametrów do klasy.
Składowe danych pól
Najważniejszymi elementami członkowskimi klasy zestawu rekordów są składowe danych pól. Dla każdej kolumny wybranej ze źródła danych klasa zawiera składową danych odpowiedniego typu danych dla tej kolumny. Na przykład przykładowa klasa pokazana na początku tego tematu ma dwa składowe danych pól, zarówno typu CString
, o nazwie m_strCourseID
, jak i m_strCourseTitle
.
Gdy zestaw rekordów wybierze zestaw rekordów, platforma automatycznie powiąże kolumny bieżącego rekordu (po wywołaniu Open
pierwszego rekordu jest bieżący) z elementami członkowskimi danych pola obiektu. Oznacza to, że struktura używa odpowiedniego elementu członkowskiego danych pola jako buforu, w którym ma być przechowywana zawartość kolumny rekordu.
Gdy użytkownik przewija nowy rekord, platforma używa elementów członkowskich danych pól do reprezentowania bieżącego rekordu. Struktura odświeża elementy członkowskie danych pól, zastępując wartości poprzedniego rekordu. Elementy członkowskie danych pól są również używane do aktualizowania bieżącego rekordu i dodawania nowych rekordów. W ramach procesu aktualizowania rekordu należy określić wartości aktualizacji, przypisując wartości bezpośrednio do odpowiedniego elementu członkowskiego danych pola lub członków.
Składowe danych parametrów
Jeśli klasa jest sparametryzowana, ma co najmniej jeden składowy danych parametrów. Sparametryzowana klasa umożliwia oparcie zapytania zestawu rekordów na informacje uzyskane lub obliczone w czasie wykonywania.
Zazwyczaj parametr pomaga zawęzić zaznaczenie, jak w poniższym przykładzie. Na podstawie przykładowej klasy na początku tego tematu obiekt zestawu rekordów może wykonać następującą instrukcję SQL:
SELECT CourseID, CourseTitle FROM Course WHERE CourseID = ?
Symbol zastępczy "?" jest symbolem zastępczym dla wartości parametru, która jest dostarczana w czasie wykonywania. Podczas konstruowania zestawu rekordów i ustawiania jego m_strIDParam
elementu członkowskiego danych na MATH101 obowiązująca instrukcja SQL dla zestawu rekordów staje się:
SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101
Definiując składowe danych parametrów, należy poinformować platformę o parametrach w ciągu SQL. Struktura wiąże parametr, który informuje ODBC, gdzie uzyskać wartości, aby zastąpić symbol zastępczy. W tym przykładzie wynikowy zestaw rekordów zawiera tylko rekord z tabeli Course z kolumną CourseID, której wartość jest MATH101. Wybrano wszystkie określone kolumny tego rekordu. Możesz określić dowolną liczbę parametrów (i symboli zastępczych).
Uwaga
MFC nie wykonuje żadnych czynności z parametrami — w szczególności nie wykonuje podstawienia tekstu. Zamiast tego MFC informuje ODBC, gdzie uzyskać parametr; OdBC pobiera dane i wykonuje niezbędne parametryzację.
Uwaga
Kolejność parametrów jest ważna. Aby uzyskać informacje o tych parametrach i więcej informacji na temat parametrów, zobacz Zestaw rekordów: parametryzacja zestawu rekordów (ODBC).
Korzystanie z m_nFields i m_nParams
Gdy kreator zapisuje konstruktor dla klasy, inicjuje również składową danych m_nFields , która określa liczbę składowych danych pól w klasie. W przypadku dodania parametrów do klasy należy również dodać inicjację elementu członkowskiego danych m_nParams, który określa liczbę składowych danych parametrów. Platforma używa tych wartości do pracy z elementami członkowskimi danych.
Aby uzyskać więcej informacji i przykładów, zobacz Rekord Field Exchange: Using RFX (Wymiana pól rekordów: używanie narzędzia RFX).
Zobacz też
Zestaw rekordów (ODBC)
Zestaw rekordów: deklarowanie klasy dla tabeli (ODBC)
Wymiana pól rekordów (RFX)