Deklarace verze ODBC aplikace

Než aplikace přidělí připojení, musí nastavit atribut prostředí SQL_ATTR_ODBC_VERSION. Tento atribut uvádí, že aplikace se řídí specifikací ODBC 2.x nebo ODBC 3.x při použití následujících položek:

  • SQLSTATEs. Mnoho hodnot SQLSTATE se liší v rozhraní ODBC 2.x a ODBC 3.x.

  • Typové identifikátory pro datum, čas a časové razítko Následující tabulka uvádí identifikátory typů pro data, čas a časová razítka v rozhraní ODBC 2.x a ODBC 3.x.

    ODBC 2.x ODBC 3.x
    Identifikátory typu SQL
    SQL_DATE SQL_TYPE_DATE
    SQL_TIME SQL_TYPE_TIME
    SQL_TIMESTAMP SQL_TYPE_TIMESTAMP
    Identifikátory typů jazyka C
    SQL_C_DATE SQL_C_TYPE_DATE
    SQL_C_TIME SQL_C_TYPE_TIME
    SQL_C_TIMESTAMP SQL_C_TYPE_TIMESTAMP
  • Argument CatalogNamev tabulkách SQL. V rozhraní ODBC 2.x jsou zástupné znaky ("%" a "_") v argumentu CatalogName interpretovány doslova. V rozhraní ODBC 3.x se považují za zástupné znaky. Aplikace, která dodržuje specifikaci ODBC 2.x, proto nemůže použít tyto znaky jakožto zástupné znaky a neescapeuje je při jejich použití jako literály. Aplikace, která se řídí specifikací ODBC 3.x, může použít tyto znaky jako zástupné znaky, nebo je nejprve escapovat a pak použít jako literály. Další informace naleznete v tématu Argumenty funkce katalogu.

Ovladač ODBC 3.x a ovladače ODBC 3.x zkontrolují verzi specifikace ODBC, na kterou je aplikace zapsána a odpovídajícím způsobem reaguje. Pokud například aplikace dodržuje specifikaci ODBC 2.x a volá SQLExecute před voláním SQLPrepare, vrátí správce ovladačů ODBC 3.x SQLSTATE S1010 (chyba sekvence funkcí). Pokud aplikace dodržuje specifikaci ODBC 3.x , vrátí Správce ovladačů SQLSTATE HY010 (chyba sekvence funkcí). Další informace naleznete v tématu Zpětné kompatibility a dodržování standardů.

Důležité

Aplikace, které dodržují specifikaci ODBC 3.x, musí používat podmíněný kód, aby se při práci s ovladači ODBC 2.x nemusely používat nové funkce rozhraní ODBC 3.x. Ovladače ODBC 2.x nepodporují nové funkce odbc 3.x , protože aplikace deklaruje, že se řídí specifikací ODBC 3.x . Ovladače ODBC 3.x navíc nepřestávají podporovat funkce nové rozhraní ODBC 3.x pouze proto, že aplikace deklaruje, že se řídí specifikací ODBC 2.x .