Freigeben über


Escapesequenzen in ODBC

Eine Reihe von Sprachfeatures, z. B. äußere Verknüpfungen und Skalarfunktionsaufrufe, werden häufig von DBMSs implementiert. Die Syntaxen für diese Features sind jedoch tendenziell DBMS-spezifisch, auch wenn Standardsyntaxen von den verschiedenen Standardsgremien definiert werden. Aus diesem Grund definiert ODBC Escapesequenzen, die Standardsyntaxen für die folgenden Sprachfeatures enthalten:

  • Datums-, Uhrzeit-, Zeitstempel- und Datetime-Intervallliterale

  • Skalare Funktionen wie numerische, Zeichenfolgen- und Datentypkonvertierungsfunktionen

  • LIKE-Prädikat escapezeichen

  • Äußere Joins

  • Prozeduraufrufe

Die von ODBC verwendete Escapesequenz lautet wie folgt:

  
(extension)  
  

Hinweise

Die Escapesequenz wird von Treibern erkannt und analysiert, die die Escapesequenzen durch DBMS-spezifische Grammatik ersetzen. Weitere Informationen zur Syntax der Escapesequenz finden Sie in Anhang C: SQL Grammar.

Hinweis

In ODBC 2.x, dies war die Standardsyntax der Escapesequenz: --(*vendor(vendor-name), product(product-name)extension*)--

Zusätzlich zu dieser Syntax wurde eine Kurzhandsyntax des Formulars definiert: {extension}

In ODBC 3.x, die lange Form der Escapesequenz ist veraltet, und das Kurzhandformular wird ausschließlich verwendet.

Da die Escapesequenzen vom Treiber dbMS-spezifischen Syntaxen zugeordnet werden, kann eine Anwendung entweder die Escapesequenz oder DBMS-spezifische Syntax verwenden. Anwendungen, die die DBMS-spezifische Syntax verwenden, sind jedoch nicht interoperabel. Bei Verwendung der Escapesequenz sollten Anwendungen sicherstellen, dass das Attribut der SQL_ATTR_NOSCAN-Anweisung deaktiviert ist, was standardmäßig der Fall ist. Andernfalls wird die Escapesequenz direkt an die Datenquelle gesendet, wo sie in der Regel einen Syntaxfehler verursacht.

Treiber unterstützen nur die Escapesequenzen, die sie zugrunde liegenden Sprachfeatures zuordnen können. Wenn die Datenquelle z. B. keine äußeren Verknüpfungen unterstützt, wird der Treiber nicht unterstützt. Um zu ermitteln, welche Escapesequenzen unterstützt werden, ruft eine Anwendung SQLGetTypeInfo und SQLGetInfo auf. Weitere Informationen finden Sie im nächsten Abschnitt, Datums-, Uhrzeit- und Zeitstempelliteralen.

In diesem Abschnitt werden die folgenden Themen behandelt: