Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Alguns argumentos nas funções de catálogo, como o argumento TableName em SQLTables, aceitam padrões de pesquisa. Esses argumentos aceitam padrões de pesquisa se o atributo de instrução SQL_ATTR_METADATA_ID estiver definido como SQL_FALSE; eles são argumentos de identificador que não aceitam um padrão de pesquisa se esse atributo estiver definido como SQL_TRUE.
Os caracteres do padrão de pesquisa são:
Um sublinhado (_), que representa qualquer caractere único.
Um sinal de porcentagem (%), que representa qualquer sequência de zero ou mais caracteres.
Um caractere de escape, que é específico do driver e é usado para incluir sublinhados, sinais percentuais e o caractere de escape como literais. Se o caractere de escape preceder um caractere não especial, o caractere de escape não terá nenhum significado especial. Se o caractere de escape preceder um caractere especial, ele escapará do caractere especial. Por exemplo, "\a" seria tratado como dois caracteres, "\" e "a", mas "\%" seria tratado como o caractere único não especial"%".
O caractere de escape é recuperado com a opção SQL_SEARCH_PATTERN_ESCAPE no SQLGetInfo. Deve preceder qualquer sublinhado, sinal de porcentagem ou caractere de escape em um argumento que aceita padrões de pesquisa para incluir esse caractere como literal. Exemplos são mostrados na tabela a seguir.
| Padrão de pesquisa | Description |
|---|---|
| %A% | Todos os identificadores que contêm a letra A |
| ABC_ | Todos os quatro identificadores de caracteres começando com ABC |
| ABC\_ | O identificador ABC_, sob a hipótese de que o caractere de escape seja a barra invertida (\) |
| \\% | Todos os identificadores que começam com uma barra invertida (\), supondo que o caractere de escape seja uma barra invertida |
Deve-se tomar cuidado especial para escapar de caracteres de padrão de pesquisa em argumentos que aceitam padrões de pesquisa. Isso é particularmente verdadeiro para o caractere de sublinhado, que geralmente é usado em identificadores. Um erro comum em aplicativos é recuperar um valor de uma função de catálogo e passar esse valor para um argumento de padrão de pesquisa em outra função de catálogo. Por exemplo, suponha que um aplicativo recupere o nome da tabela MY_TABLE do conjunto de resultados para SQLTables e passe isso para SQLColumns para recuperar uma lista de colunas em MY_TABLE. Em vez de obter as colunas para MY_TABLE, o aplicativo obterá as colunas de todas as tabelas que correspondem ao padrão de pesquisa MY_TABLE, como MY_TABLE, MY1TABLE, MY2TABLE e assim por diante.
Observação
ODBC 2. X drivers não dão suporte a padrões de pesquisa no argumento CatalogName em SQLTables. Os drivers ODBC 3*.x* aceitam padrões de pesquisa nesse argumento se o atributo de ambiente SQL_ATTR_ ODBC_VERSION estiver definido como SQL_OV_ODBC3; eles não aceitam padrões de pesquisa nesse argumento se ele estiver definido como SQL_OV_ODBC2.
Passar um ponteiro nulo para um argumento de padrão de pesquisa não restringe a pesquisa desse argumento; ou seja, um ponteiro nulo e o padrão de pesquisa % (quaisquer caracteres) são equivalentes. No entanto, um padrão de pesquisa de comprimento zero - ou seja, um ponteiro válido para uma cadeia de caracteres de comprimento zero - corresponde apenas à cadeia de caracteres vazia ("").