Udostępnij za pośrednictwem


ODBC: bezpośrednie wywoływanie funkcji ODBC API

Klasy baz danych zapewniają prostszy interfejs dla źródła danych niż ODBC. W związku z tym klasy nie hermetyzują wszystkich interfejsów API ODBC. W przypadku wszystkich funkcji, które wykraczają poza możliwości klas, należy bezpośrednio wywołać funkcje interfejsu API ODBC. Na przykład należy bezpośrednio wywołać funkcje wykazu ODBC (::SQLColumns, ::SQLProcedures, ::SQLTablesi innych).

Uwaga

Źródła danych ODBC są dostępne za pośrednictwem klas MFC ODBC, zgodnie z opisem w tym temacie lub za pośrednictwem klas MFC Data Access Object (DAO).

Aby bezpośrednio wywołać funkcję interfejsu API ODBC, należy wykonać te same czynności, które należy wykonać, jeśli wykonasz wywołania bez struktury. Są to następujące kroki:

  • Przydziel magazyn dla wszystkich wyników zwracanych przez wywołanie.

  • Przekaż odBC HDBC lub HSTMT uchwyt, w zależności od podpisu parametru funkcji. Użyj makra AFXGetHENV , aby pobrać dojście ODBC.

    Zmienne CDatabase::m_hdbc składowe i CRecordset::m_hstmt są dostępne, aby nie trzeba ich przydzielać i inicjować samodzielnie.

  • Być może wywołaj dodatkowe funkcje ODBC, aby przygotować się do wywołania głównego lub wykonać następujące czynności.

  • Cofnij przydział magazynu po zakończeniu.

Aby uzyskać więcej informacji na temat tych kroków, zobacz dokumentację programisty ODBC.

Oprócz tych kroków należy wykonać dodatkowe kroki, aby sprawdzić wartości zwracane przez funkcję, upewnić się, że program nie czeka na zakończenie wywołania asynchronicznego itd. Te ostatnie kroki można uprościć przy użyciu makr AFX_SQL_ASYNC i AFX_SQL_SYNC. Aby uzyskać więcej informacji, zobacz Makra I globalne MFC.

Zobacz też

Podstawy ODBC