Database Activities
Versión: 1.0.0 · ID: zoan-packages-database · Autor: Zoan Software
El paquete Database permite que tu automatización lea y modifique bases de datos directamente con SQL. Es la forma más eficiente de trabajar con grandes volúmenes de datos cuando tienes acceso a la base: consultar miles de registros, insertar resultados, actualizar estados. Soporta SQL Server, PostgreSQL, MySQL y cualquier fuente vía ODBC.
El modelo: conectar → consultar → cerrar
Sección titulada «El modelo: conectar → consultar → cerrar»Trabajar con una base de datos sigue el patrón abrir → usar → cerrar:
- DB Connect abre una conexión y devuelve una sesión (
ZoanDbSession). - Ejecutas una o varias consultas con DB Query, DB Execute o DB Scalar.
- DB Close cierra la conexión.
Como en otros paquetes con sesión, hay dos formas:
Opción A — DB Connect con body (recomendada)
Sección titulada «Opción A — DB Connect con body (recomendada)»Las actividades dentro del body heredan la conexión automáticamente (no configuras session), y la conexión se cierra sola al terminar.
DB Connect provider = sqlserver connectionString = = credential("db-ventas").ToPlainText() └─ body: DB Query sql = "SELECT * FROM Clientes WHERE Activo = 1" → output: clientes DB Execute sql = "UPDATE Procesos SET UltimaCorrida = GETDATE()"Opción B — Sesión en una variable
Sección titulada «Opción B — Sesión en una variable»DB Connect guarda la sesión en una variable; cada actividad la recibe en session, y cierras con DB Close.
DB Connect provider = postgres connectionString = = credential("db").ToPlainText() → output: dbDB Query session = = db sql = "SELECT * FROM pedidos" → output: pedidosDB Close session = = dbProveedores y cadena de conexión
Sección titulada «Proveedores y cadena de conexión»provider | Motor |
|---|---|
sqlserver | Microsoft SQL Server |
postgres | PostgreSQL |
mysql | MySQL / MariaDB |
odbc | Cualquier fuente con driver ODBC |
La cadena de conexión (connectionString) es el texto estándar de ADO.NET que indica servidor, base de datos y credenciales:
Server=db.empresa.com;Database=ventas;User Id=bot;Password=...;Consultas parametrizadas: @nombre + params
Sección titulada «Consultas parametrizadas: @nombre + params»Nunca metas valores de variables directamente en el texto SQL concatenando. En su lugar, usa parámetros: pon @nombre en la consulta y pasa los valores en el campo params (un objeto { nombre: valor }).
DB Query sql = "SELECT * FROM Clientes WHERE Ciudad = @ciudad AND Activo = @activo" params = { "ciudad": = ciudadBuscada, "activo": true } → output: resultadoTres formas de consultar
Sección titulada «Tres formas de consultar»| Actividad | Para qué | Devuelve |
|---|---|---|
| DB Query | SELECT que devuelve varias filas | DataTable |
| DB Scalar | SELECT que devuelve un solo valor (un COUNT, un MAX) | el valor |
| DB Execute | INSERT / UPDATE / DELETE | nº de filas afectadas |
Actividades
Sección titulada «Actividades»| Actividad | Tipo | Salida | Qué hace |
|---|---|---|---|
| DB Connect | db-connect | ZoanDbSession | Abre una conexión y devuelve una sesión |
| DB Query | db-query | DataTable | Ejecuta un SELECT y devuelve las filas |
| DB Scalar | db-scalar | object | Ejecuta un SELECT y devuelve un único valor |
| DB Execute | db-execute | int | Ejecuta INSERT/UPDATE/DELETE; devuelve filas afectadas |
| DB Close | db-close | — | Cierra la conexión |
Un flujo típico
Sección titulada «Un flujo típico»Leer pedidos pendientes y marcarlos como procesados:
DB Connect provider = sqlserver connectionString = = credential("db-erp").ToPlainText() └─ body: DB Query sql = "SELECT * FROM Pedidos WHERE Estado = @e" params = { "e": "pendiente" } → output: pedidos For Each items = = pedidos itemVariable = fila └─ activities: ... procesar ... DB Execute sql = "UPDATE Pedidos SET Estado = 'procesado' WHERE Id = @id" params = { "id": = fila["Id"] }Siguientes pasos
Sección titulada «Siguientes pasos»- DB Connect — abrir la conexión.
- DB Query — la consulta más común.
- DataTable — procesar los resultados de un SELECT.