Argomenti del valore dei criteri

Alcuni argomenti nelle funzioni di catalogo, ad esempio l'argomento TableName in SQLTables, accettano criteri di ricerca. Questi argomenti accettano criteri di ricerca se l'attributo SQL_ATTR_METADATA_ID'istruzione è impostato su SQL_FALSE; sono argomenti identificatore che non accettano un criterio di ricerca se questo attributo è impostato su SQL_TRUE.

I caratteri dei criteri di ricerca sono:

  • Carattere di sottolineatura (_), che rappresenta qualsiasi carattere singolo.

  • Segno di percentuale (%), che rappresenta qualsiasi sequenza di zero o più caratteri.

  • Carattere di escape, specifico del driver, usato per includere caratteri di sottolineatura, segni di percentuale e il carattere di escape come valori letterali. Se il carattere di escape precede un carattere non speciale, il carattere di escape non ha un significato speciale. Se il carattere di escape precede un carattere speciale, viene preceduto dal carattere speciale. Ad esempio, "\a" verrebbe considerato come due caratteri, " " e "a", ma " %" verrebbe considerato come carattere singolo non speciale \ \ "%".

Il carattere di escape viene recuperato con l'SQL_SEARCH_PATTERN_ESCAPE in SQLGetInfo. Deve precedere qualsiasi carattere di sottolineatura, segno di percentuale o carattere di escape in un argomento che accetta criteri di ricerca per includere tale carattere come valore letterale. Nella tabella seguente sono riportati alcuni esempi.

Criterio di ricerca Descrizione
%A% Tutti gli identificatori contenenti la lettera A
ABC_ Tutti e quattro gli identificatori di caratteri che iniziano con ABC
ABC \ _ Identificatore ABC_, presupponendo che il carattere di escape sia una barra rovesciata ( \ )
\\% Tutti gli identificatori che iniziano con una barra rovesciata ( ), presupponendo che il carattere \ di escape sia una barra rovesciata

È necessario fare particolare attenzione a eseguire l'escape dei caratteri dei criteri di ricerca negli argomenti che accettano i criteri di ricerca. Ciò vale in particolare per il carattere di sottolineatura, comunemente usato negli identificatori. Un errore comune nelle applicazioni è recuperare un valore da una funzione di catalogo e passarlo a un argomento del criterio di ricerca in un'altra funzione di catalogo. Si supponga, ad esempio, che un'applicazione recuperi il nome della tabella MY_TABLE dal set di risultati per SQLTables e lo passi a SQLColumns per recuperare un elenco di colonne in MY_TABLE. Anziché ottenere le colonne per MY_TABLE, l'applicazione otterrà le colonne per tutte le tabelle che corrispondono al criterio di ricerca MY_TABLE, ad esempio MY_TABLE, MY1TABLE, MY2TABLE e così via.

Nota

ODBC 2. I driver x non supportano i criteri di ricerca nell'argomento CatalogName in SQLTables. I driver ODBC 3 .x accettano criteri di ricerca in questo argomento se l'attributo SQL_ATTR_ ODBC_VERSION'ambiente è impostato su SQL_OV_ODBC3; non accettano criteri di ricerca in questo argomento se è impostato su SQL_OV_ODBC2.

Il passaggio di un puntatore Null a un argomento del criterio di ricerca non vincola la ricerca di tale argomento. ovvero un puntatore Null e il criterio di ricerca % (qualsiasi carattere) sono equivalenti. Tuttavia, un criterio di ricerca di lunghezza zero, ad esempio un puntatore valido a una stringa di lunghezza zero, corrisponde solo alla stringa vuota ("").