Sequências de escape no ODBC
Vários recursos de linguagem, como junções externas e chamadas de função escalar, são comumente implementados por DBMSs. No entanto, as sintaxes para esses recursos tendem a ser específicas do DBMS, mesmo quando as sintaxes padrão são definidas pelos vários órgãos de padrões. Devido a isso, o ODBC define sequências de escape que contêm sintaxes padrão para os seguintes recursos de linguagem:
Literais de data, hora, carimbo de data/hora e intervalo de data/hora
Funções escalares, como funções de conversão numérica, de cadeia de caracteres e de tipo de dados
Caractere de escape de predicado LIKE
Junções externas
Chamadas de procedimento
A sequência de escape usada pelo ODBC é a seguinte:
(extension)
Comentários
A sequência de escape é reconhecida e analisada por drivers, que substituem as sequências de escape com gramática específica do DBMS. Para obter mais informações sobre a sintaxe de sequência de escape, confira Sequências de escape do ODBC no Apêndice C: Gramática SQL.
Observação
No ODBC 2.x, esta era a sintaxe padrão da sequência de escape: --(*vendor(vendor-name), product(product-name)extension *)--
Além dessa sintaxe, foi definida uma sintaxe abreviada da forma: {extension}
No ODBC 3.x, a forma longa da sequência de escape foi preterida, e a forma abreviada é usada exclusivamente.
Como as sequências de escape são mapeadas pelo driver para sintaxes específicas do DBMS, um aplicativo pode usar a sequência de escape ou a sintaxe específica do DBMS. No entanto, os aplicativos que usam a sintaxe específica do DBMS não serão interoperáveis. Ao usar a sequência de escape, os aplicativos devem se certificar de que o atributo de instrução SQL_ATTR_NOSCAN esteja desativado, o que é por padrão. Caso contrário, a sequência de escape será enviada diretamente para a fonte de dados, onde geralmente causará um erro de sintaxe.
Os drivers são compatíveis apenas com as sequências de escape que eles podem mapear para recursos de linguagem subjacentes. Por exemplo, se a fonte de dados não oferecer suporte a junções externas, o driver também não oferecerá. Para determinar quais sequências de escape são suportadas, um aplicativo chama SQLGetTypeInfo e SQLGetInfo. Para obter mais informações, confira a próxima seção, Literais de data, hora e carimbo de data/hora.
Esta seção contém os tópicos a seguir.