Zestaw rekordów: filtrowanie rekordów (ODBC)
Ten temat dotyczy klas MFC ODBC.
W tym temacie wyjaśniono, jak do filtrowania zestawu rekordów, aby wybierała określony podzbiór dostępnych rekordów.Na przykład można wybrać tylko sekcje klasy o konkretnym kursie, takich jak MATH101.Filtr jest warunek wyszukiwania zdefiniowane przez zawartość programu SQL Server gdzie klauzuli.Gdy w ramach dołącza go do instrukcji SQL w zestawie rekordów, gdzie klauzula ogranicza wybór.
Należy ustanowić obiektu recordset filtr po konstruowania obiektu, ale zanim zadzwonisz do jego Otwórz funkcji członka (lub przed wywołaniem Requery funkcji członka dla istniejącego zestawu rekordów obiektu, którego Otwórz uprzednio wywołano funkcję członka).
Aby określić filtr dla obiektu recordset
Utworzenia nowego obiektu recordset (lub przygotowania do wywołania Requery istniejącego obiektu).
Ustaw wartość obiektu m_strFilter element członkowski danych.
Filtr jest ciąg zakończony znakiem null, który zawiera zawartość SQL gdzie klauzuli, ale nie słowa kluczowego gdzie.Na przykład użyj:
m_pSet->m_strFilter = "CourseID = 'MATH101'";
inna niż
m_pSet->m_strFilter = "WHERE CourseID = 'MATH101'";
[!UWAGA]
Ciąg "MATH101" jest wyświetlana z powyższych znaki pojedynczego cudzysłowu.W specyfikacji ODBC SQL pojedynczego cudzysłowu są używane do oznaczenia literał ciągu znaków.Sprawdź w dokumentacji sterownika ODBC cytowanie na potrzeby systemu DBMS w tej sytuacji.Składnia ta została również omówiona dalej w pobliżu końca tego tematu.
Ustaw inne opcje, którego potrzebujesz, takich jak kolejność sortowania, tryb blokowania lub parametrów.Określając parametr jest szczególnie przydatna.Informacje parametryzacja filtru, zobacz zestaw rekordów: parametryzacja zestaw rekordów (ODBC).
Wywołanie Otwórz dla nowego obiektu (lub Requery dla poprzedniego otwartego obiektu).
![]() |
---|
Używanie parametrów w filtrze jest potencjalnie najbardziej skuteczną metodą pobierania rekordów. |
![]() |
---|
Filtry rekordów są przydatne dla łączącej tabel oraz do używania Parametry w oparciu o informacje uzyskane lub obliczane w czasie wykonywania. |
Zestaw rekordów wybiera tylko te rekordy, które spełniają określony warunek wyszukiwania.Na przykład, aby określić filtr kursu opisanych powyżej (zakładając, że zmienna strCourseID obecnie ustawione, na przykład "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 klasy MATH101.
Zauważ, jak ciąg filtru została ustawiona w przykładzie powyżej, przy użyciu zmienna typu string.Jest to typowy sposób użycia.Ale Załóżmy, że do określenia wartości literału 100 dla identyfikatora kursu.Poniższy kod przedstawia sposób ustawić poprawnie z wartości literału ciąg filtru:
m_strFilter = "StudentID = '100'"; // correct
Należy zauważyć użycie znaków pojedynczego apostrofu; Jeśli ustawisz ciąg filtru bezpośrednio, ciąg filtru jest nie:
m_strFilter = "StudentID = 100"; // incorrect for some drivers
Cytowanie pokazanym powyżej jest zgodny ze specyfikacją ODBC, ale niektóre systemach DBMS może wymagać innych znaków oferty.Aby uzyskać więcej informacji, zobacz SQL: dostosowywanie swój zestaw rekordów w instrukcji SQL (ODBC).
[!UWAGA]
Jeśli użytkownik wybierze zastąpienie ciąg SQL domyślnego zestawu rekordów przez przekazanie własnego ciąg SQL, aby Otwórz, nie należy ustawiać filtra, jeśli ma niestandardowy ciąg gdzie klauzuli.Aby uzyskać więcej informacji na temat zastępując domyślne ustawienie SQL, zobacz SQL: dostosowywanie swój zestaw rekordów w instrukcji SQL (ODBC).
Zobacz też
Koncepcje
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)