Share via


Séquences d’échappement dans ODBC

Un certain nombre de fonctionnalités de langage, telles que les jointures externes et les appels de fonction scalaire, sont généralement implémentées par des SGBD. Toutefois, les syntaxes de ces fonctionnalités ont tendance à être spécifiques au SGBD, même lorsque les syntaxes standard sont définies par les différents organismes de normes. Pour cette raison, ODBC définit des séquences d’échappement qui contiennent des syntaxes standard pour les fonctionnalités de langage suivantes :

  • Littéraux de date, d’heure, d’horodatage et d’intervalle datetime

  • Fonctions scalaires telles que les fonctions de conversion de type numérique, chaîne et de type de données

  • CARACTÈRE d’échappement de prédicat LIKE

  • Jointures externes

  • Appels de procédure

La séquence d’échappement utilisée par ODBC est la suivante :

  
(extension)  
  

Notes

La séquence d’échappement est reconnue et analysée par les pilotes, qui remplacent les séquences d’échappement par une grammaire spécifique au SGBD. Pour plus d’informations sur la syntaxe de séquence d’échappement, consultez séquences d’échappement ODBC dans l’annexe C : Grammaire SQL.

Remarque

Dans ODBC 2.x, il s’agissait de la syntaxe standard de la séquence d’échappement : --(*vendor(vendor-name), product(product-name)*)--

En plus de cette syntaxe, une syntaxe abrégée a été définie sous la forme : {extension}

Dans ODBC 3.x, la forme longue de la séquence d’échappement a été déconseillée, et le formulaire abrégé est utilisé exclusivement.

Étant donné que les séquences d’échappement sont mappées par le pilote à des syntaxes spécifiques au SGBD, une application peut utiliser la séquence d’échappement ou la syntaxe spécifique au SGBD. Toutefois, les applications qui utilisent la syntaxe spécifique au SGBD ne sont pas interopérables. Lorsque vous utilisez la séquence d’échappement, les applications doivent s’assurer que l’attribut d’instruction SQL_ATTR_NOSCAN est désactivé, ce qu’il est par défaut. Sinon, la séquence d’échappement est envoyée directement à la source de données, où elle provoque généralement une erreur de syntaxe.

Les pilotes prennent uniquement en charge ces séquences d’échappement qu’ils peuvent mapper aux fonctionnalités de langage sous-jacentes. Par exemple, si la source de données ne prend pas en charge les jointures externes, aucun pilote n’est pris en charge. Pour déterminer les séquences d’échappement prises en charge, une application appelle SQLGetTypeInfo et SQLGetInfo. Pour plus d’informations, consultez la section suivante, date, heure et littéraux d’horodatage.

Cette section contient les rubriques suivantes :