DBTextFinder, una aplicación para buscar texto en bases de datos
Las vistas del catálogo contienen toda la información referente a la estructura de nuestras bases de datos: esquemas, tablas, campos de las tablas, tipos de datos de los campos, restricciones de integridad, código de los procedimientos almacenados, etc. Conocerlas es fundamental para desarrollar herramientas de gestión independientes de nuestra estructura de datos. En este artículo vamos a ver un ejemplo de una de estas herramientas, DBTextFinder, una sencilla aplicación que nos permitirá buscar texto en los registros de nuestra base de datos y dentro del código de las vistas y procedimientos almacenados.
Esta aplicación funciona con cualquier base de datos, sin más que crear una librería con un interfaz estándar y registrarla en el programa. Yo he desarrollado tres ejemplos para acceder a bases de datos SQL Server, MySQL y Oracle 12c, en este enlace podéis descargar el código fuente de los ejemplos de conectores de DBTextFinder.
En este otro enlace puedes ver como crear un conector WCF simple para DBTextFinder.
La utilidad principal de la aplicación es buscar textos en una base de datos, aunque también proporciona la opción de reemplazo y de eliminar registros. Usad estas opciones con precaución, y nunca sin haberos asegurado bien previamente de que hacen correctamente lo que esperáis de ellas.
En este enlace podéis descargar el programa de instalación de DBTextFinder. A continuación, vamos a ver como configurarlo y usarlo.
Configuración de las conexiones
Lo primero que tenemos que hacer, es configurar alguna conexión con una base de datos. Para ello, usaremos la opción Administrar conexiones del menú Opciones:
AL abrir el desplegable Conector veremos los diferentes conectores que tengamos registrados en la aplicación. Para crear una nueva conexión, seleccionaremos el conector apropiado para la base de datos y la opción <Nueva> en el desplegable que hay a la derecha. En este último desplegable también aparecerán las conexiones que ya hayamos configurado, y que podemos modificar seleccionándolas.
En el cuadro de texto Nombre de la conexión escribiremos el identificador que queramos darle a la conexión y, a continuación, escribiremos los parámetros de la conexión, en el cuadro de texto Servidor escribiremos la IP o el nombre del servidor, o, en el caso de Oracle, el nombre del servicio TNS. En el cuadro de texto Catálogo escribiremos el nombre de la base de datos a la que queremos acceder (en el conector de Oracle no es necesario, ya que se define en el archivo TNSNAMES.ORA), y, por último, el nombre de usuario y la contraseña para, o bien la autenticación de Windows, si está disponible.
Finalmente, podemos probar la conexión con el botón Probar conexión, y guardarla con el botón Guardar.
Registrar nuevos conectores
Con la opción Instalar conector, del menú Opciones podemos registrar nuevas librerías de conexión para otras bases de datos. Simplemente hay que buscar y seleccionar el archivo con la librería, que será registrado en la sección correspondiente del archivo config de la aplicación.
Podemos activar o desactivar conectores con la opción Administrar conectores del menú Opciones:
Solo estarán disponibles aquellos conectores que estén marcados.
Búsqueda de cadenas de texto
Una vez configurado el acceso a la base de datos, utilizaremos la opción Nuevo del menú Archivo para acceder al interfaz de búsqueda.
En el desplegable Nombre de la conexión seleccionaremos la conexión a la base de datos en la que deseamos realizar la búsqueda. A la derecha aparecerán los objetos disponibles y podremos seleccionar aquellos en los que deseamos realizar la búsqueda. Podemos marcar las opciones Buscar en tablas, para que aparezcan listadas las tablas y Buscar en procedimientos, para que aparezcan listados los procedimientos almacenados y las vistas.
En el cuadro de texto Expresión de búsqueda escribiremos la cadena de texto a buscar. También podemos utilizar expresiones regulares para la búsqueda. Existe la opción Ignorar mayúsculas/minúsculas para realizar la búsqueda sin distinguir entre mayúsculas y minúsculas.
Con el botón Buscar iniciaremos la búsqueda, que podemos cancelar con el botón Cancelar.
Búsqueda de texto en los registros de las tablas
Cuando seleccionamos alguna de las tablas de la base de datos, la búsqueda se realiza en todos los campos que contengan texto:
En el panel superior aparecerán todos los registros en los que se haya encontrado la cadena o expresión buscada, identificados por su clave primaria, junto con los campos en los que se han encontrado coincidencias. Seleccionando uno cualquiera de ellos, podremos ver el contenido de todos sus campos en el panel de la parte inferior.
Si queremos reemplazar el texto por otro diferente, habrá que marcar la casilla Reemplazar, a la derecha del campo, y pulsar el botón Reemplazar. También podemos eliminar el registro con el botón Eliminar. Obviamente, hay que utilizar estas opciones con mucho cuidado, por lo que solo están disponibles para actuar sobre el registro seleccionado.
Búsqueda de texto en el código de los procedimientos almacenados y vistas
También podemos realizar búsquedas dentro del código de los procedimientos almacenados y las vistas, cuando seleccionamos este tipo de objetos.
Aquí también podemos realizar reemplazos, marcando las coincidencias que deseamos reemplazar y usando el botón Reemplazar. También podemos eliminar la vista o el procedimiento con el botón Eliminar.