ODBC: Přímé volání funkcí rozhraní API ODBC
Databázové třídy poskytují jednodušší rozhraní ke zdroji dat než rozhraní ODBC. Třídy v důsledku toho nezapouzdří všechna rozhraní API ODBC. Pro funkce, které spadají mimo schopnosti tříd, musíte přímo volat funkce rozhraní ODBC API. Například musíte přímo volat funkce katalogu rozhraní ODBC (::SQLColumns, ::SQLProcedures, ::SQLTables a jiné).
Poznámka
Zdroje dat rozhraní ODBC jsou přístupné pomocí tříd knihovny MFC rozhraní ODBC, jak je popsáno v tomto tématu nebo pomocí tříd knihovny MFC rozhraní DAO (Data Access Objects).
Chcete-li přímo volat funkce rozhraní ODBC API, musíte provést stejné kroky, které byste provedli v případě, že byste volali funkce bez použití architektury. Tyto kroky jsou:
Přidělení úložiště pro výsledky, které volání vrátí.
Předání popisovače rozhraní ODBC HDBC nebo HSTMT v závislosti na parametru signatury funkce. Použijte makro AFXGetHENV pro načtení popisovače rozhraní ODBC.
Členské proměnné CDatabase::m_hdbc a CRecordset::m_hstmt jsou k dispozici, takže je nemusíte alokovat ani inicializovat sami.
Možné volání dalších funkcí rozhraní ODBC k přípravě nebo zpracování hlavního volání.
Navrácení úložiště po dokončení.
Pro další informace o těchto krocích si prohlédněte sadu SDK rozhraní ODBC (Open Database Connectivity) v dokumentaci MSDN.
Vedle těchto kroků budete muset provést další kroky pro kontrolu vrácených hodnot funkce a zajistit, že program nebude čekat na asynchronní volání proto, aby skončil, atd. Tyto poslední kroky můžete zjednodušit pomocí maker AFX_SQL_ASYNC a AFX_SQL_SYNC. Další informace naleznete v Makra a Globals v Odkaz knihovny MFC.