Zestaw rekordów: filtrowanie rekordów (ODBC)

Ten temat dotyczy klas MFC ODBC.

W tym temacie wyjaśniono, jak filtrować zestaw rekordów, tak aby wybierał tylko określony podzestaw dostępnych rekordów. Na przykład możesz wybrać tylko sekcje klas dla określonego kursu, takie jak MATH101. Filtr jest warunkiem wyszukiwania zdefiniowanym przez zawartość klauzuli SQL WHERE . Gdy struktura dołącza ją do instrukcji SQL zestawu rekordów, klauzula WHERE ogranicza zaznaczenie.

Należy ustanowić filtr obiektu zestawu rekordów po utworzeniu obiektu, ale przed wywołaniem jego Open funkcji składowej (lub przed Requery wywołaniem funkcji składowej dla istniejącego obiektu zestawu rekordów, którego Open funkcja składowa została wywołana wcześniej).

Aby określić filtr dla obiektu zestawu rekordów

  1. Skonstruuj nowy obiekt zestawu rekordów (lub przygotuj się do wywołania Requery istniejącego obiektu).

  2. Ustaw wartość m_strFilter elementu członkowskiego danych obiektu.

    Filtr jest ciągiem zakończonym wartości null, który zawiera zawartość klauzuli SQL WHERE , ale nie słowo kluczowe WHERE. Możesz na przykład użyć następujących usług:

    m_pSet->m_strFilter = "CourseID = 'MATH101'";
    

    not

    m_pSet->m_strFilter = "WHERE CourseID = 'MATH101'";
    

    Uwaga

    Ciąg literału "MATH101" jest wyświetlany z pojedynczym cudzysłowem powyżej. W specyfikacji ODBC SQL pojedyncze cudzysłowy są używane do oznaczania literału ciągu znaków. Zapoznaj się z dokumentacją sterownika ODBC, aby zapoznać się z wymaganiami cytowania systemu DBMS w tej sytuacji. Ta składnia została również omówiona bliżej końca tego tematu.

  3. Ustaw inne potrzebne opcje, takie jak kolejność sortowania, tryb blokowania lub parametry. Określanie parametru jest szczególnie przydatne. Aby uzyskać informacje na temat parametryzacji filtru, zobacz Zestaw rekordów: parametryzacja zestawu rekordów (ODBC).

  4. Wywołaj Open nowy obiekt (lub Requery dla wcześniej otwartego obiektu).

Napiwek

Używanie parametrów w filtrze jest potencjalnie najbardziej wydajną metodą pobierania rekordów.

Napiwek

Filtry zestawu rekordów są przydatne do łączenia tabel i używania parametrów na podstawie informacji uzyskanych lub obliczonych w czasie wykonywania.

Zestaw rekordów wybiera tylko te rekordy, które spełniają określony warunek wyszukiwania. Aby na przykład określić opisany powyżej filtr kursu (przy założeniu, że zmienna strCourseID jest obecnie ustawiona na wartość "MATH101"), wykonaj następujące czynności:

// Using the recordset pointed to by m_pSet

// Set the filter
m_pSet->m_strFilter = "CourseID = " + strCourseID;

// Run the query with the filter in place
if ( m_pSet->Open( CRecordset::snapshot, NULL, CRecordset::readOnly ) )

// Use the recordset

Zestaw rekordów zawiera rekordy dla wszystkich sekcji klas dla MATH101.

Zwróć uwagę, że ciąg filtru został ustawiony w powyższym przykładzie przy użyciu zmiennej ciągu. Jest to typowe użycie. Załóżmy jednak, że chcesz określić wartość literału 100 dla identyfikatora kursu. Poniższy kod pokazuje, jak poprawnie ustawić ciąg filtru z wartością literału:

m_strFilter = "StudentID = '100'";   // correct

Zwróć uwagę na użycie znaków pojedynczego cudzysłowu; Jeśli ustawisz ciąg filtru bezpośrednio, ciąg filtru nie jest:

m_strFilter = "StudentID = 100";   // incorrect for some drivers

Powyższe cytowanie jest zgodne ze specyfikacją ODBC, ale niektóre maszyny DBMS mogą wymagać innych znaków cudzysłowu. Aby uzyskać więcej informacji, zobacz SQL: Dostosowywanie instrukcji SQL zestawu rekordów (ODBC).

Uwaga

Jeśli zdecydujesz się zastąpić domyślny ciąg SQL zestawu rekordów, przekazując własny ciąg SQL do Open, nie należy ustawiać filtru, jeśli ciąg niestandardowy ma klauzulę WHERE . Aby uzyskać więcej informacji na temat zastępowania domyślnego języka SQL, zobacz SQL: Dostosowywanie instrukcji SQL zestawu rekordów (ODBC).

Zobacz też

Zestaw rekordów (ODBC)
Zestaw rekordów: sortowanie rekordów (ODBC)
Zestaw rekordów: jak zestawy rekordów pobierają rekordy (ODBC)
Zestaw rekordów: jak zestawy rekordów aktualizują rekordy (ODBC)
Zestaw rekordów: blokowanie rekordów (ODBC)