Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Alcuni argomenti nelle funzioni del catalogo, ad esempio l'argomento TableName in SQLTables, accettano modelli di ricerca. Questi argomenti accettano criteri di ricerca se l'attributo dell'istruzione SQL_ATTR_METADATA_ID è impostato su SQL_FALSE; sono argomenti di identificatore che non accettano un criterio di ricerca se questo attributo è impostato su SQL_TRUE.
I caratteri del criterio di ricerca sono:
Carattere di sottolineatura (_), che rappresenta qualsiasi carattere singolo.
Segno di percentuale (%), che rappresenta qualsiasi sequenza di zero o più caratteri.
Un carattere di escape, specifico del driver, viene utilizzato per includere caratteri di sottolineatura, segni di percentuale e lo stesso carattere di escape come 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, esso serve a eseguire l'escape del carattere speciale. Ad esempio, "\a" verrebbe considerato come due caratteri, "\" e "a", ma "\%" verrebbe considerato come il carattere singolo non speciale "%".
Il carattere di escape viene recuperato con l'opzione SQL_SEARCH_PATTERN_ESCAPE in SQLGetInfo. Deve precedere qualsiasi carattere di sottolineatura, segno di percentuale o carattere di escape in un argomento che accetta modelli di ricerca per includere tale carattere come valore letterale. Gli esempi sono illustrati nella tabella seguente.
| Criterio di ricerca | Description |
|---|---|
| %A% | Tutti gli identificatori contenenti la lettera A |
| ABC_ | Tutti e quattro gli identificatori di carattere che iniziano con ABC |
| ABC\_ | Identificatore ABC_, presupponendo che il carattere 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 prestare particolare attenzione nell'effettuare l'escape dei caratteri speciali nei modelli di ricerca negli argomenti che accettano pattern di ricerca. Ciò è particolarmente vero per il carattere di sottolineatura, comunemente usato negli identificatori. Un errore comune nelle applicazioni consiste nel recuperare un valore da una funzione del catalogo e passare tale valore a un argomento del criterio di ricerca in un'altra funzione del catalogo. Si supponga, ad esempio, che un'applicazione recuperi il nome della tabella MY_TABLE dal set di risultati per le tabelle SQLTable 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.
Annotazioni
ODBC 2. I driver x non supportano i modelli di ricerca nell'argomento CatalogName in SQLTables. I driver ODBC 3*.x* accettano modelli di ricerca in questo argomento se l'attributo dell'ambiente SQL_ATTR_ ODBC_VERSION è impostato su SQL_OV_ODBC3; non accettano modelli 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, ovvero un puntatore valido a una stringa di lunghezza zero, corrisponde solo alla stringa vuota ("").