Sdílet prostřednictvím


ODBC: Přímé volání funkcí rozhraní API ODBC

Databázové třídy poskytují jednodušší rozhraní pro zdroj dat než ODBC. V důsledku toho třídy nezaplní všechny rozhraní ODBC API. Pro všechny funkce, které spadají mimo schopnosti tříd, je nutné volat funkce rozhraní ODBC API přímo. Například musíte přímo volat funkce katalogu ODBC (::SQLColumns, ::SQLProcedures, ::SQLTablesa další).

Poznámka:

Zdroje dat ODBC jsou přístupné prostřednictvím tříd MFC ODBC, jak je popsáno v tomto tématu, nebo prostřednictvím tříd ROZHRANÍ DAO (Data Access Object).

Pokud chcete volat přímo funkci rozhraní API ODBC, musíte provést stejné kroky, které byste udělali, pokud byste prováděli volání bez rozhraní. Jedná se o tyto kroky:

  • Přidělení úložiště pro všechny výsledky, které volání vrátí.

  • V závislosti na podpisu parametru funkce předejte rozhraní ODBC HDBC nebo HSTMT popisovač. Pomocí makra AFXGetHENV načtěte popisovač ODBC.

    Členské proměnné CDatabase::m_hdbc a CRecordset::m_hstmt jsou k dispozici, takže je nemusíte přidělovat a inicializovat sami.

  • Možná zavolejte další funkce ODBC, které se mají připravit na hlavní volání nebo je zpracovat.

  • Uvolněte úložiště po dokončení.

Další informace o těchtokrocích

Kromě těchto kroků je potřeba provést další kroky ke kontrole vrácených hodnot funkce, zajistit, aby program nečekal na dokončení asynchronního volání atd. Tyto poslední kroky můžete zjednodušit pomocí AFX_SQL_ASYNC a AFX_SQL_SYNC maker. Další informace naleznete v tématu MFC makra a globální objekty.

Viz také

ODBC – základy