ODBC でのエスケープ シーケンス

外部結合やスカラー関数呼び出しなど、多くの言語機能は、一般的に DBMS によって実装されます。 ただし、標準構文がさまざまな標準本体で定義されている場合でも、これらの機能の構文は DBMS 固有である傾向があります。 このため、ODBC は、次の言語機能の標準構文を含むエスケープ シーケンスを定義します。

  • 日付、時刻、タイムスタンプ、および datetime 間隔リテラル

  • 数値、文字列、データ型の変換関数などのスカラー関数

  • LIKE 述語エスケープ文字

  • 外部結合

  • プロシージャ呼び出し

ODBC で使用されるエスケープ シーケンスは次のとおりです。

  
(extension)  
  

注釈

エスケープ シーケンスはドライバーによって認識および解析され、エスケープ シーケンスは DBMS 固有の文法に置き換えられます。 エスケープ シーケンス構文の詳細については、「付録 C: SQL文法」の「ODBC エスケープ シーケンス」を参照してください。

注意

ODBC 2。x, this was the standard syntax of the escape sequence: --(*vendor(vendor-name), product(product-name)extension*)--

この構文に加えて、短縮形の構文が定義されています: {extension}

ODBC 3。x、エスケープ シーケンスの長い形式は非推奨となり、短縮形は排他的に使用されます。

エスケープ シーケンスはドライバーによって DBMS 固有の構文にマップされるため、アプリケーションはエスケープ シーケンスまたは DBMS 固有の構文を使用できます。 ただし、DBMS 固有の構文を使用するアプリケーションは相互運用できません。 エスケープ シーケンスを使用する場合、アプリケーションはSQL_ATTR_NOSCANステートメント属性がオフになっていることを確認する必要があります。これは既定で無効になっています。 それ以外の場合、エスケープ シーケンスはデータ ソースに直接送信され、通常は構文エラーが発生します。

ドライバーは、基になる言語機能にマップできるエスケープ シーケンスのみをサポートします。 たとえば、データ ソースが外部結合をサポートしていない場合、ドライバーもサポートされません。 サポートされているエスケープ シーケンスを特定するために、アプリケーションは SQLGetTypeInfoSQLGetInfo を呼び出します。 詳細については、次のセクション「日付、 時刻、およびタイムスタンプ リテラル」を参照してください。

このセクションでは、次のトピックを扱います。