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
, ::SQLTables
a 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
neboHSTMT
popisovač. Pomocí makra AFXGetHENV načtěte popisovač ODBC.Členské proměnné
CDatabase::m_hdbc
aCRecordset::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.