> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/input-output/communication/sql-db-client-connect.md).

# SQL-DB Client Connect

Este bloque de función se utiliza para configurar y establecer una conexión con una base de datos SQL (MySQL, PostgreSQL, MSSQL, SQLite). Úsalo para crear un cliente de base de datos persistente que otros bloques puedan usar para ejecutar consultas u operaciones de datos.

## 📥 Entradas

Este bloque de función no tiene conectores de entrada.

## 📤 Salidas

* `DB Client`: Un objeto cliente de base de datos reutilizable que otros bloques (por ejemplo, `SQL-DB Operations`) pueden usar para ejecutar consultas y transacciones.
* `Connection Success`: Un booleano que indica si la conexión se estableció correctamente.

## 🕹️ Controles

* `Database Type`: Un desplegable para elegir el tipo de base de datos (MySQL, PostgreSQL, MSSQL, SQLite). Elegir `SQLite` simplifica la interfaz porque no se requieren host/port/user/password.
* `Host`: Nombre de host o dirección IP del servidor de base de datos. Oculto para `SQLite`.
* `Database`: Nombre de la base de datos. Para `SQLite`, este campo se usa como la ruta del archivo de la base de datos.
* `Port`: Puerto TCP del servidor de base de datos. Oculto para `SQLite`.
* `User`: Nombre de usuario de la base de datos. Oculto para `SQLite`.
* `Password`: Contraseña de la base de datos. Oculto para `SQLite`.

Nota: Cambiar cualquiera de estos campos restablecerá la conexión existente y desencadenará un nuevo intento de conexión cuando se evalúe el bloque.

## 🎯 Características

* Soporte simple para múltiples bases de datos con una única interfaz unificada para los backends SQL más comunes.
* Compatibilidad con `SQLite` que reduce los campos cuando se selecciona una base de datos basada en archivo.
* Devuelve un `DB Client` listo para usar y una bandera `Connection Success` para lógica posterior y manejo de errores.
* Reconexión automática cuando se detectan cambios en la configuración.

## 📝 Instrucciones de uso

1. Selecciona el `Database Type` que corresponda a tu servidor.
2. Completa `Host`, `Port`, `User`, `Password` y `Database` según corresponda (para `SQLite` proporciona la ruta del archivo en `Database`).
3. Ejecuta tu escenario o evalúa el bloque. El bloque intentará conectarse y ajustará `Connection Success` en consecuencia.
4. Usa el `DB Client` proporcionado con `SQL-DB Operations` para realizar consultas, inserts, updates u otras tareas de base de datos.
5. Si cambias cualquier campo de conexión, el bloque restablecerá la conexión actual e intentará reconectar en la siguiente evaluación.

## 📊 Evaluación

Al evaluarse, el bloque valida los parámetros proporcionados e intenta establecer una conexión. En caso de éxito, expone un cliente reutilizable a través de la salida `DB Client` y establece `Connection Success` en true. En caso de fallo, registra un error y establece `Connection Success` en false.

## 💡 Consejos y trucos

* Combina con `SQL-DB Operations` para ejecutar consultas y devolver resultados al flujo.
* Usa `Data to JSON` para serializar resultados complejos antes de escribirlos en archivos o enviarlos por la red.
* Usa `CSV Export` o `Image Logger` (para metadatos relacionados con imágenes) para persistir resultados provenientes de consultas.
* Usa `Data Write Local` o `Data Write Global` para almacenar el `DB Client` o resultados de consultas recientes y reutilizarlos en diferentes partes de tu proyecto.
* Usa `Debug Input` para inspeccionar salidas crudas de `SQL-DB Operations` mientras construyes y depuras tu escenario.

## 🛠️ Solución de problemas

* La conexión falla pero las credenciales son correctas: verifica el acceso de red al `Host` y que el `Port` seleccionado esté abierto y acepte conexiones.
* Usando `SQLite`: asegúrate de que la ruta proporcionada en `Database` sea accesible y que la aplicación tenga permisos de lectura/escritura sobre ese archivo.
* Si los cambios de configuración no parecen aplicarse: edita cualquier control (por ejemplo `Host`) para forzar que el bloque se restablezca y vuelva a establecer la conexión.
* Si necesitas confirmar los datos devueltos durante el desarrollo, adjunta `SQL-DB Operations` y `Debug Input` para inspeccionar las respuestas antes de integrarlas.
