Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Alguns argumentos nas funções de catálogo, como o argumento TableName em SQLTables, aceitam padrões de pesquisa. Estes argumentos aceitam padrões de pesquisa se o atributo SQL_ATTR_METADATA_ID da instrução estiver definido como SQL_FALSE; São argumentos identificadores que não aceitam um padrão de pesquisa se este atributo estiver definido como SQL_TRUE.
Os caracteres do padrão de pesquisa são:
Um sublinhado (_), que representa qualquer carácter individual.
Um sinal percentual (%), que representa qualquer sequência de zero ou mais caracteres.
Um carácter de escape, que é específico do condutor e é usado para incluir sublinhados, sinais percentuais e o carácter de escape como literais. Se o caractere de escape precede um caractere não-especial, o caractere de escape não tem significado especial. Se a personagem escape preceder uma personagem especial, ela escapa da personagem especial. Por exemplo, "\a" seria tratado como dois caracteres, "\" e "a", mas "\%" seria tratado como o carácter único não especial "%".
O caractere de escape é recuperado com a opção SQL_SEARCH_PATTERN_ESCAPE no SQLGetInfo. Deve preceder qualquer sublinhado, sinal percentual ou carácter de escape num argumento que aceite padrões de pesquisa para incluir esse carácter como literal. Exemplos são apresentados na tabela seguinte.
| Padrão de pesquisa | Description |
|---|---|
| %A% | Todos os identificadores que contêm a letra A |
| ABC_ | Todos os quatro identificadores de caracteres que começam por ABC |
| ABC\_ | O identificador ABC_, assumindo que o carácter escape é uma barra invertida (\) |
| \\% | Todos os identificadores começam por uma barra invertida (\), assumindo que o carácter de escape é uma barra invertida. |
Deve-se ter especial cuidado para evitar caracteres de padrões de pesquisa em argumentos que aceitem padrões de pesquisa. Isto é particularmente verdade para o carácter sublinhado, que é comumente usado em identificadores. Um erro comum em aplicações é recuperar um valor de uma função de catálogo e passar esse valor para um argumento de padrão de pesquisa noutra função de catálogo. Por exemplo, suponha que uma aplicação recupera o nome da tabela MY_TABLE do conjunto de resultados para SQLTables e o passa para SQLColumns para obter uma lista de colunas em MY_TABLE. Em vez de obter as colunas para MY_TABLE, a aplicação obtém as colunas de todas as tabelas que correspondem ao padrão de pesquisa MY_TABLE, como MY_TABLE, MY1TABLE, MY2TABLE, e assim sucessivamente.
Observação
Os drivers ODBC 2.x 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 neste argumento se o atributo SQL_ATTR_ ODBC_VERSION ambiente estiver definido como SQL_OV_ODBC3; Não aceitam padrões de pesquisa neste argumento se este estiver definido para SQL_OV_ODBC2.
Passar um ponteiro nulo para um argumento de padrão de pesquisa não restringe a procura por esse argumento; ou seja, um apontador 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 comprimento zero – corresponde apenas à cadeia vazia ("").