Sdílet prostřednictvím


Sada záznamů: Filtrování záznamů (ODBC)

Toto téma platí pro třídy knihovny MFC rozhraní ODBC.

Toto téma vysvětluje, jak filtrovat sadu záznamů tak, aby byla vybrána pouze konkrétní podmnožinu dostupných záznamů.Například můžete chtít vybrat pouze oddíly třídy pro konkrétní kurz, jako například MATH101.Filtr je podmínka vyhledávání, která je definována obsahem SQL klauzule WHERE.Pokud jej systém připojí k příkazu SQL sady záznamů, klauzule WHERE omezí výběr.

Poté, co vytvoříte objekt, ale předtím, než zavoláte jeho členskou funkci Open (nebo než zavoláte členskou funkci Requery pro existující objekt sady záznamů, jehož členská funkce Open byla volána dříve), je nutné vytvořit filtr objektu sady záznamů.

Chcete-li zadat filtr pro objekt sady záznamů

  1. Vytvořte nový objekt sady záznamů (nebo připravte volání Requery pro stávající objekt).

  2. Nastavte hodnotu datového členu objektu m_strFilter.

    Filtr je řetězec zakončený nulou, který obsahuje obsah SQL klauzule WHERE, ale nikoli klíčové slovo WHERE.Například použijte:

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

    ne

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

    [!POZNÁMKA]

    Řetězcový literál "MATH101" je zobrazen výše mezi jednoduchými uvozovkami.Ve specifikaci rozhraní ODBC SQL se apostrofy používají k označení řetězcového literálu znaků.V dokumentaci ovladače rozhraní ODBC zkontrolujte požadavky pro použití apostrofů systému DBMS v této situaci.Tato syntaxe je také popsána dále téměř na konci tohoto tématu.

  3. Nastavte libovolné další možnosti, které potřebujete, například pořadí řazení, režim uzamčení nebo parametry.Určení parametru je obzvláště užitečné.Informace o parametrizaci filtru naleznete v tématu Sada záznamů: parametrizování sada záznamů (rozhraní ODBC).

  4. Zavolejte Open pro nový objekt (nebo Requery u dříve otevřeného objektu).

Tip

Použití parametrů ve filtru je potenciálně nejefektivnější metoda pro načtení záznamů.

Tip

Filtry sady záznamů jsou užitečné pro spojení tabulek a pro použití parametrů na základě informací získaných nebo vypočtených v době běhu.

Sada záznamů vybere pouze ty záznamy, které splňují podmínku vyhledávání, kterou jste zadali.Například chcete-li zadat filtr kurzu, který je popsaný výše (za předpokladu, že je proměnná strCourseID aktuálně nastavená například na "MATH101"), proveďte následující:

// 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

Sada záznamů obsahuje záznamy pro všechny oddíly tříd pro MATH101.

Všimněte si, jak byl nastaven filtrační řetězec ve výše uvedeném příkladu za použití řetězcové proměnné.Toto je typické využití.Ale předpokládejme, že jste chtěli pro ID kurzu zadat hodnotu literálu 100.Následující kód ukazuje, jak správně nastavit filtrační řetězec s literálovou hodnotou:

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

Všimněte si použití apostrofů; nastavíte-li filtrační řetězec přímo, filtrační řetězec pak není:

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

Výše uvedené použití uvozovek odpovídá specifikaci rozhraní ODBC, ale některé systémy DBMS mohou vyžadovat jiné uvozovky (apostrofy).Další informace naleznete v tématu SQL: příkazu SQL přizpůsobení sady záznamů (ODBC).

[!POZNÁMKA]

Rozhodnete-li se přepsat výchozí řetězec SQL sady záznamů tím, že předáte váš vlastní SQL řetězec do Open, neměli byste nastavovat filtr, pokud má váš vlastní řetězec klauzuli WHERE.Další informace o přepsání výchozího SQL najdete v tématu SQL: příkazu SQL přizpůsobení sady záznamů (ODBC).

Viz také

Koncepty

Sada záznamů (ODBC)

Sada záznamů: Řazení záznamů (ODBC)

Sada záznamů: Jak sady záznamů vybírají záznamy (ODBC)

Sada záznamů: Jak sady záznamů aktualizují záznamy (ODBC)

Sada záznamů: Zamykání záznamů (ODBC)