Zestaw rekordów: architektura (ODBC)
Ten temat dotyczy klas MFC ODBC.
W tym temacie opisano elementy danych składające się architektura obiektu recordset:
Pole danych członków
Parametr danych członków
Za pomocą elementów członkowskich danych m_nFields i m_nParams
[!UWAGA]
Ten temat dotyczy obiekty pochodzące z CRecordset w wiersz, który luzem pobieranie nie została zaimplementowana.Jeśli pobieranie wiersza zbiorczego jest zaimplementowana architektura jest podobny.Aby zrozumieć różnice, zobacz zestaw rekordów: pobieranie rekordów luzem (ODBC).
Klasa próbki
Użycie Kreatora konsumenta ODBC MFC z Add Class kreatora, aby zadeklarować klasy zestaw rekordów pochodzących z CRecordset, wynikowy klasa ma ogólną strukturę pokazany w poniższej klasie proste:
class CCourse : public CRecordset
{
public:
CCourse(CDatabase* pDatabase = NULL);
...
CString m_strCourseID;
CString m_strCourseTitle;
CString m_strIDParam;
};
Na początku klasy, kreator zapisuje zbiór pole danych członków.Po utworzeniu klasy, należy określić jeden lub więcej członków dane pole.Jeśli klasa sparametryzowana, co próbka klasa jest (z elementem danych m_strIDParam), należy ręcznie dodać parametr danych członków.Kreator nie obsługuje dodawania parametrów do klasy.
Pole danych członków
Najważniejszych członków swojej klasy zestaw rekordów są członkami dane pole.Dla każdej wybranej kolumny można określić źródło danych klasa zawiera element członkowski danych typu danych odpowiednich dla danej kolumny.Na przykład klasy próbki się na początku tego tematu ma dwa pola danych członków, zarówno typu CString, zwany m_strCourseID i m_strCourseTitle.
Gdy zestaw rekordów wybiera zestaw rekordów, ramach automatycznie wiąże kolumny bieżącego rekordu (po Otwórz rozmowy, pierwszy rekord jest bieżąca) członkom pola danych obiektu.Oznacza to ramach wykorzystuje element członkowski danych odpowiedniego pola jako bufor do przechowywania zawartości kolumny rekordu.
Użytkownik przewija do nowego rekordu, ramach pola danych członków do reprezentowania używany w bieżącym rekordzie.Ramach odświeża pola danych członków, zastąpienie wartości poprzedniego rekordu.Pole danych członków są również używane do aktualizacji bieżącego rekordu i dodawanie nowych rekordów.Jako część procesu aktualizacji rekordu określisz wartości aktualizacji przez przypisanie wartości bezpośrednio do odpowiedniego pola danych członka lub członków.
Parametr danych członków
Jeśli klasa sparametryzowana, ma jeden lub więcej członków danych parametru.Klasa sparametryzowana pozwala Ci na informacjach uzyskanych lub obliczane w czasie wykonywania kwerendy zestawu rekordów.
Zazwyczaj parametr pomaga zawęzić wybór, jak w poniższym przykładzie.Na podstawie klasy próbki na początku tego tematu, obiektu recordset może wykonać następującą instrukcję SQL:
SELECT CourseID, CourseTitle FROM Course WHERE CourseID = ?
"?" Jest symbolem zastępczym dla wartości parametru, która zostanie podana w czasie wykonywania.Podczas konstruowania zestawu rekordów i ustawić jego m_strIDParam staje się skuteczne instrukcja SQL dla zestawu rekordów członka danych do MATH101,:
SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101
Definiując parametr danych członków ramach Opisz parametrów w ciągu SQL.Ramach wiąże parametr, który pozwala ODBC wiedzieć, gdzie szukać wartości podstawiane dla elementu zastępczego.W przykładzie Wynikowy zestaw rekordów zawiera tylko rekordy z tabeli Kurs z kolumną CourseID, których wartość jest MATH101.Wszystkie kolumny określonego tego rekordu są zaznaczone.Można określić dowolną liczbę parametrów (i elementy zastępcze) jak trzeba.
[!UWAGA]
MFC nie działają, sama z parametrami — w szczególności nie wykonuje zamienianie tekstu.Zamiast tego MFC mówi ODBC skąd wziąć parametr; ODBC pobiera dane i wykonuje niezbędne parametryzacji.
[!UWAGA]
Ważne jest kolejność parametrów.Aby uzyskać informacje na ten temat oraz więcej informacji o parametrach, zobacz zestaw rekordów: parametryzacja zestaw rekordów (ODBC).
Przy użyciu m_nFields i m_nParams
Gdy kreator zapisuje konstruktora dla klasy, to także inicjuje m_nFields element członkowski danych, który określa liczbę pole danych członków w klasie.Jeśli dodasz dowolne Parametry do klasy, należy także dodać inicjowanie m_nParams element członkowski danych, który określa liczbę elementów członkowskich danych parametru.Na podstawie tych wartości ramach współpracować z członkami danych.
Aby uzyskać więcej informacji i przykłady, zobacz wymiany pól rekordu: za pomocą RFX.