Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Algunos argumentos de las funciones de catálogo, como el argumento TableName en SQLTables, aceptan patrones de búsqueda. Estos argumentos aceptan patrones de búsqueda si el atributo de instrucción SQL_ATTR_METADATA_ID está establecido en SQL_FALSE; son argumentos de identificador que no aceptan un patrón de búsqueda si este atributo está establecido en SQL_TRUE.
Los caracteres del patrón de búsqueda son:
Carácter de subrayado (_), que representa cualquier carácter único.
Signo de porcentaje (%), que representa cualquier secuencia de cero o más caracteres.
Un carácter de escape, que es específico del controlador y se utiliza para incluir caracteres de subrayado, signos de porcentaje y el propio carácter de escape como literales. Si el carácter de escape precede a un carácter no especial, el carácter de escape no tiene ningún significado especial. Si el carácter de escape precede a un carácter especial, neutraliza el carácter especial. Por ejemplo, "\a" se trataría como dos caracteres, "\" y "a", pero "\%" se trataría como el carácter único no especial "%".
El carácter de escape se recupera con la opción SQL_SEARCH_PATTERN_ESCAPE en SQLGetInfo. Debe preceder a cualquier carácter de subrayado, signo de porcentaje o escape en un argumento que acepte patrones de búsqueda para incluir ese carácter como literal. En la tabla siguiente se muestran ejemplos.
| Patrón de búsqueda | Description |
|---|---|
| %A% | Todos los identificadores que contienen la letra A |
| ABC_ | Los cuatro identificadores de caracteres que comienzan con ABC |
| ABC\_ | El identificador ABC_, suponiendo que el carácter de escape es una barra diagonal inversa (\) |
| \\% | Todos los identificadores que comienzan por una barra diagonal inversa (\), suponiendo que el carácter de escape sea una barra diagonal inversa |
Se debe tener especial cuidado para escapar los caracteres de patrón de búsqueda en argumentos que aceptan patrones de búsqueda. Esto es especialmente cierto para el carácter de subrayado, que se usa normalmente en identificadores. Un error común en las aplicaciones es recuperar un valor de una función de catálogo y pasar ese valor a un argumento de patrón de búsqueda en otra función de catálogo. Por ejemplo, supongamos que una aplicación recupera el nombre de la tabla MY_TABLE del conjunto de resultados para SQLTables y lo pasa a SQLColumns para recuperar una lista de columnas en MY_TABLE. En lugar de obtener las columnas de MY_TABLE, la aplicación obtendrá las columnas de todas las tablas que coinciden con el patrón de búsqueda MY_TABLE, como MY_TABLE, MY1TABLE, MY2TABLE, etc.
Nota:
ODBC 2. Los controladores x no admiten patrones de búsqueda en el argumento CatalogName en SQLTables. Los controladores ODBC 3*.x* aceptan patrones de búsqueda en este argumento si el atributo de entorno de SQL_ATTR_ ODBC_VERSION está establecido en SQL_OV_ODBC3; no aceptan patrones de búsqueda en este argumento si se establece en SQL_OV_ODBC2.
Pasar un puntero nulo a un argumento de patrón de búsqueda no restringe la búsqueda de ese argumento; es decir, un puntero nulo y el patrón de búsqueda % (cualquier carácter) son equivalentes. Sin embargo, un patrón de búsqueda de longitud cero, es decir, un puntero válido a una cadena de longitud cero, coincide solo con la cadena vacía ("").