Sequenze di escape in ODBC
Diverse funzionalità del linguaggio, come per esempio outer join e chiamate di funzione scalare, vengono comunemente implementate dai DBMS. Tuttavia, le sintassi per queste funzionalità tendono a essere specifiche per DBMS, anche quando le sintassi standard sono definite dai vari corpi standard. Per questo motivo, l’ODBC definisce delle sequenze di escape contenenti sintassi standard per le seguenti funzionalità del linguaggio:
Data, ora, data e ora e l’intervallo di valori letterali datetime.
Funzioni scalari come funzioni di conversione numerica, di stringa e di tipo di dati
Carattere di escape del predicato LIKE
Outer join
Chiamate di procedura
La sequenza di escape usata da ODBC è la seguente:
(extension)
Commenti
La sequenza di escape viene riconosciuta e analizzata dai driver, che sostituiscono le sequenze di escape con la grammatica specifica del DBMS. Per ulteriori informazioni sulla sintassi della sequenza di escape, vedere Sequenze di escape ODBC nell'Appendice C: Grammatica SQL.
Nota
In ODBC 2.x, questa era la sintassi standard della sequenza di escape: --(*vendor(vendor-name), product(product-name)extension *)--
Oltre a questa sintassi, è stata definita una sintassi abbreviata nel modulo: {estensione}
In ODBC 3.x, la forma lunga della sequenza di escape è stata deprecata e viene usata esclusivamente la forma abbreviata.
Poiché le sequenze di escape vengono mappate dal driver alle sintassi specifiche DBMS, un'applicazione può usare sia la sequenza di escape che la sintassi specifica DBMS. Tuttavia, le applicazioni che usano la sintassi specifica DBMS non saranno interoperabili. Quando si usa la sequenza di escape, le applicazioni devono assicurarsi che l'attributo dell’istruzione SQL_ATTR_NOSCAN sia disattivato, come per impostazione predefinita. In caso contrario, la sequenza di escape verrà inviata direttamente all'origine dati dove, in genere, causa un errore di sintassi.
I driver supportano solo le sequenze di escape che possono mappare alle funzionalità del linguaggio sottostanti. Per esempio, se l'origine dati non supporta le outer join, non lo farà nemmeno il driver. Per determinare quali sequenze di escape sono supportate, un'applicazione chiama SQLGetTypeInfo e SQLGetInfo. Per ulteriori informazioni, vedere la sezione successiva, Valori letterali data, ora e data e ora.
Questa sezione contiene i seguenti argomenti: