Sdílet prostřednictvím


Escape sekvence v rozhraní ODBC

DbMS běžně implementuje celou řadu jazykových funkcí, jako jsou vnější spojení a volání skalárních funkcí. Syntaxe těchto funkcí ale bývá specifická pro DBMS, i když jsou standardní syntaxe definovány různými subjekty standardů. Z tohoto důvodu rozhraní ODBC definuje escape sekvence, které obsahují standardní syntaxi pro následující jazykové funkce.

  • Datové, časové, razítkové a intervalové literály datetime

  • Skalární funkce, jako jsou číselné funkce, řetězcové funkce a funkce převodních datových typů

  • Escape znak pro LIKE predikát

  • Vnější spojení

  • Volání procedur

Řídicí sekvence používaná rozhraním ODBC je následující:

  
(extension)  
  

Poznámky

Úniková sekvence je rozpoznána a analyzována ovladači, které nahrazují únikové sekvence gramatikou specifickou pro SŘBD. Další informace o syntaxi escape sekvence naleznete v tématu Escape sekvence ODBC v dodatku C: Gramatika SQL.

Poznámka:

V ODBC 2.x, toto byla standardní syntaxe únikové sekvence: --(*vendor(vendor-name), product(product-name)extension*)--

Kromě této syntaxe byla definována zkrácená syntaxe formuláře: {extension}

V ODBC 3.x byla dlouhá forma escape sekvence zrušena a používá se výhradně zkrácená forma.

Vzhledem k tomu, že řídicí sekvence jsou mapovány ovladačem na syntaxe specifické pro DBMS, může aplikace použít řídicí sekvenci nebo syntaxi specifickou pro DBMS. Aplikace, které používají syntaxi specifickou pro DBMS, ale nebudou interoperabilní. Při použití escape sekvence by měly aplikace zajistit, že atribut příkazu SQL_ATTR_NOSCAN je vypnutý, což je standardně výchozí stav. Jinak se sekvence úniku odešle přímo do zdroje dat, kde obvykle způsobí chybu syntaxe.

Ovladače podporují pouze ty unikové sekvence, které mohou mapovat na základní jazykové funkce. Pokud například zdroj dat nepodporuje vnější spojení, ani ovladač. K určení podporovaných únikových sekvencí volá aplikace SQLGetTypeInfo a SQLGetInfo. Další informace najdete v další části, Date, Time, and Timestamp Literals.

Tato část obsahuje následující témata.