Escape-последовательности в ODBC
Ряд функций языка, таких как внешние соединения и скалярные вызовы функций, обычно реализуются DBMS. Однако синтаксисы этих функций, как правило, зависят от СУБД, даже если стандартные синтаксисы определяются различными органами стандартов. Из-за этого ODBC определяет escape-последовательности, содержащие стандартные синтаксисы для следующих функций языка:
Литералы даты, времени, метки времени и интервала даты и времени
Скалярные функции, такие как числовые, строковые и функции преобразования типов данных
Escape-символ предиката LIKE
Внешние соединения
Вызовы процедур
Escape-последовательность, используемая ODBC, выглядит следующим образом:
(extension)
Замечания
Escape-последовательность распознается и анализируется драйверами, которые заменяют escape-последовательности грамматикой для субД. Дополнительные сведения о синтаксисе escape-последовательности см. в разделе "Escape-последовательности ODBC" в приложении C: грамматика SQL.
Примечание.
В ODBC 2.x, это был стандартный синтаксис escape-последовательности: --(*vendor(vendor-name), product(product-name)*)--
Помимо этого синтаксиса, был определен сокращенный синтаксис формы: {extension}
В ODBC 3.x, длинная форма escape-последовательности устарела, а сокращенная форма используется исключительно.
Так как escape-последовательности сопоставляются драйвером с синтаксисами, зависящими от СУБД, приложение может использовать синтаксический синтаксис для escape-последовательности или СУБД. Однако приложения, использующие синтаксис СУБД, не будут взаимодействовать. При использовании escape-последовательности приложения должны убедиться, что атрибут инструкции SQL_ATTR_NOSCAN отключен по умолчанию. В противном случае escape-последовательность будет отправлена непосредственно в источник данных, где обычно возникает синтаксическая ошибка.
Драйверы поддерживают только те escape-последовательности, которые они могут сопоставить с базовыми языковыми функциями. Например, если источник данных не поддерживает внешние соединения, ни драйвер. Чтобы определить, какие escape-последовательности поддерживаются, приложение вызывает SQLGetTypeInfo и SQLGetInfo. Дополнительные сведения см. в следующем разделе: "Литералы даты", "Время" и "Метка времени".
Этот раздел содержит следующие подразделы.