Udostępnij za pośrednictwem


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

Ten temat dotyczy klas MFC ODBC.

W tym temacie wyjaśniono sposób filtrowania zestawu rekordów, aby wybierała określony podzbiór rekordów dostępne.Na przykład można wybrać tylko sekcje klasy określonym kursem, takich jak MATH101.Filtr jest warunek wyszukiwania zdefiniowane przez zawartość SQL gdzie klauzuli.Gdy w ramach dołącza go do instrukcji SQL w zestawie rekordów, gdzie klauzuli ogranicza wybór.

Musi ustanowić obiektu recordset filtru po konstruowania obiektu, ale zanim zadzwonisz do jego Otwórz funkcji składowej (lub przed wywołaniem Requery obiektu funkcji składowej dla istniejących rekordów, których otwarte Członkowskie funkcja została wywołana wcześniej).

Aby określić filtr dla obiektu recordset

  1. Konstruowania nowego obiektu zestaw rekordów (lub przygotowania do wywołania Requery dla istniejącego obiektu).

  2. Ustaw wartość obiektu m_strFilter elementu danych.

    Filtr jest ciągiem zakończonym 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'";
    

    nie

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

    [!UWAGA]

    Literał ciągu "MATH101" jest wyświetlany z powyższych znaki cudzysłowu pojedynczego.W opisie ODBC SQL pojedyncze cudzysłowy są używane do oznaczania literał ciągu znaków.Sprawdź w dokumentacji sterownika ODBC dla takowych wymagań systemu DBMS w tej sytuacji.Ta składnia została również omówiona dalej w pobliżu końcu tego tematu.

  3. Ustaw inne opcje, którego potrzebujesz, takich jak porządek sortowania, tryb blokowania lub parametrów.Określenie parametru jest szczególnie przydatna.Informacje o parametryzacja filtru, zobacz zestaw rekordów: parametryzacja zestaw rekordów (ODBC).

  4. Wywołanie Otwórz dla nowego obiektu (lub Requery dla poprzedniego otwartego obiektu).

PoradaPorada

Przy użyciu parametrów do filtru jest potencjalnie najbardziej skuteczną metodą pobierania rekordów.

PoradaPorada

Filtry rekordów są przydatne dla łączącej tabel oraz za Parametry na podstawie informacji otrzymanych 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 opisane powyżej (przy założeniu zmiennej strCourseID aktualnie ustawiona, 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.

Należy zauważyć, jak ustalono w przykładzie powyżej, przy użyciu zmiennej ciągu ciąg filtru.Jest to typowy sposób użycia.Ale Załóżmy, że chce określić wartość literału 100 Identyfikator kursu.Poniższy kod przedstawia sposób ustawić ciąg filtru z wartości literału:

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

Uwaga Użycie znaków pojedynczy cudzysłów; Jeśli ciąg filtru można ustawiać 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 w niektórych systemach DBMS może wymagać innych znaków oferty.Aby uzyskać więcej informacji, zobacz SQL: Dostosowywanie Your w zestawie rekordów instrukcji SQL (ODBC).

[!UWAGA]

Jeśli użytkownik wybierze zastąpienie ciąg SQL domyślnego zestawu rekordów, przekazując własne ciąg SQL, aby Otwórz, nie należy zdefiniować filtr, jeśli twój niestandardowy ciąg gdzie klauzuli.Aby uzyskać więcej informacji na temat zastępując domyślne ustawienie SQL, zobacz SQL: Dostosowywanie Your w zestawie rekordów instrukcji SQL (ODBC).

Zobacz też

Koncepcje

Zestaw rekordów (ODBC)

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

Zestaw rekordów: Jak zestawy rekordów wybierz rekordy (ODBC)

Zestaw rekordów: Jak zestawy rekordów aktualizacji rekordów (ODBC)

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