Net-Base Revista

11.04.2026

Reemplazar Borland BDE por FireDAC: Guía para una modernización segura de Delphi sin Big Bang

Muchas aplicaciones existentes Delphi todavía utilizan la Borland Database Engine (BDE) — a menudo estable, pero con riesgos crecientes en despliegue, 64 bits, seguridad y estrategia moderna de bases de datos. Este artículo muestra cómo las empresas pueden reemplazar la BDE de forma gradual y controlada por FireDAC...

11.04.2026

Del tema de la revista a la práctica del proyecto

Páginas de servicios y técnicas relacionadas

Video-Botschaft

Reemplazar Borland BDE por FireDAC: Guía para una modernización segura de Delphi sin Big Bang

Kurz erklärt, warum die BDE im Betrieb zum Risiko wird und wie FireDAC schrittweise eingeführt werden kann, ohne einen Big-Bang-Relaunch zu erzwingen.

Video mit KI erstellt

Transkript anzeigen

Hallo, ich bin Mark. Die meisten BDE-Anwendungen scheitern nicht am Code, sondern am Betrieb.

Im Beitrag „Borland BDE durch FireDAC ersetzen: Leitfaden für eine sichere Delphi-Modernisierung ohne Big Bang“ geht es genau darum. Die BDE wirkt oft stabil.

Aber sie passt schlecht zu gehärteten Windows-Setups, standardisiertem Deployment und 64‑Bit. Genau dort entstehen Audit- und Support-Risiken.

FireDAC ist der moderne Datenzugriff in Delphi. Er bringt konsistente Treiber, sauberes Logging für Fehlersuche und funktioniert in 32 und 64 Bit.

Wichtig ist die Perspektive: Nicht „Komponenten tauschen“, sondern Schritt für Schritt vorgehen. Erst eine stabile Verbindungsschicht, dann ein Pilotmodul, dann die Fläche.

So bleibt die Fachlogik geschützt. Wenn Sie dazu Fragen aus Ihrem Betrieb haben, lassen Sie uns das in Ruhe einordnen.

Wenn du dazu Fragen hast oder tiefer einsteigen willst, melde dich gern bei uns.

En muchas empresas, la Borland Database Engine (BDE) sigue siendo hoy en día parte de aplicaciones Delphi críticas para el negocio: lógica de negocio consolidada, accesos a datos cercanos a la interfaz con TTable/TQuery, en parte todavía Paradox/dBase, en parte instalaciones cliente/servidor tempranas. Con frecuencia la realidad es: el software funciona, los usuarios conocen los procesos y en el día a día no hay un motivo inmediato para „tocar“ nada. Al mismo tiempo cambia el sustrato técnico: los sistemas operativos se endurecen, el despliegue se estandariza, se espera 64‑bit y el almacenamiento de datos debe realizarse en servidores con un concepto claro de permisos y backups.

Precisamente en este punto la „sustitución de Borland BDE por una conexión nativa con BDE-Ablösung“ se convierte en una tarea estratégica de modernización. BDE-Ablosung mit nativer Anbindung es, en versiones actuales de Delphi, el acceso a datos establecido para bases de datos modernas. Proporciona comportamiento consistente, controladores robustos, soporte Unicode, monitorización/traza y una arquitectura que puede atender tanto clientes de escritorio como servicios y servidores REST. El cambio rara vez es solo un intercambio 1:1 de componentes, sobre todo cuando la aplicación heredada ha „precios“ durante años comportamientos específicos de BDE (suposiciones de transacción, formatos de datos, filtros/ordenaciones, Cached Updates, informes de terceros).

Este artículo se centra en el enfoque práctico: ¿Cómo reemplazar BDE por FireDAC sin poner en riesgo la lógica de negocio y sin forzar un enfoque ‚big-bang‘? Obtendrá un modelo aplicable, imágenes objetivo técnicas y notas sobre zonas problemáticas típicas en la operación empresarial.

Por qué la sustitución de BDE hoy es más que mantenimiento técnico

Mientras una aplicación con BDE funcione, una sustitución puede parecer un simple „limpieza de código“. En la práctica, la presión suele venir de temas de operación y riesgo.

Despliegue, líneas base de seguridad y clientes „sin tocar“

Históricamente BDE está diseñada para configuración local (BDE Administrator, definiciones de alias, NetDir, archivos de configuración compartidos). En entornos modernos los pasos manuales y las configuraciones a nivel máquina son difíciles de conciliar con la distribución de software, el endurecimiento y la auditabilidad. FireDAC permite despliegues mucho más controlables, porque los parámetros de conexión y las opciones de driver pueden gestionarse cerca de la aplicación.

64‑Bit, modernización de Windows y nuevos objetivos de plataforma

A más tardar cuando una aplicación debe ejecutarse en 64‑bit (necesidad de memoria, ecosistema de drivers/Office, hardware nuevo, estrategias de Terminal Server), BDE se convierte en un bloqueo práctico. FireDAC soporta 32/64‑bit de forma consistente y por tanto es un componente central de cualquier modernización de Delphi que no debe fallar por el acceso a datos. Paralelamente se hacen planificables temas como Windows 11 ARM64 y arquitecturas cliente/servicio híbridas.

Estrategia de base de datos: abandonar el archivo, ir hacia servidores

Muchas aplicaciones con BDE arrastran lastres de la época Paradox/dBase. Estas bases de datos de archivo son más propensas a problemas en entornos multiusuario, más difíciles de asegurar administrativamente y encajan mal con requisitos actuales (roles/permiso, encriptación, monitorización, alta disponibilidad). FireDAC no es „el nuevo driver de Paradox“, sino el acceso moderno a SQL Server, PostgreSQL, MariaDB y Firebird. En la práctica la sustitución de BDE suele ser la señal de partida para profesionalizar la gestión de datos y la operación.

Mantenibilidad y capacidad de diagnóstico en operación

Un factor de coste subestimado es la búsqueda de errores: problemas esporádicos de locking, comportamiento inconsistente de cursores, conversiones de parámetros difíciles de seguir o problemas de red/rutas. FireDAC aporta con logging, monitorización y un comportamiento de tipos más claro mejores puntos de partida para análisis reproducibles de errores. Para empresas que quieren operar una aplicación a largo plazo y ampliarla puntualmente, ese es un beneficio inmediato.

BDE vs. FireDAC: diferencias que importan en la migración

En el papel las componentes se pueden mapear. En la realidad se trata de cambios de comportamiento que pueden causar efectos colaterales funcionales. Una breve orientación:

Mapeo de componentes (como punto de partida)

  • TDatabase (BDE) → TFDConnection (FireDAC)
  • TQuery (BDE) → TFDQuery
  • TTable (BDE) → TFDTable (en modernizaciones a menudo mejor: acceso basado en Query/View)
  • TStoredProc (BDE) → TFDStoredProc

Las diferencias de comportamiento más comunes

  • Parámetros y tipos de datos: FireDAC trabaja con mayor precisión. Los SQL de „seguro que funciona“ salen antes a la luz (p. ej. fechas como cadenas, conversiones implícitas, nulabilidad poco clara).
  • Transacciones: El código legado a menudo contiene suposiciones de commit implícitas (cerrar el Dataset, patrones tipo AutoCommit, Cached Updates). Con FireDAC resulta conveniente un control consciente de transacciones, porque mejora la consistencia funcional.
  • Cursor/Fetch: FireDAC tiene valores por defecto distintos y más palancas de ajuste. Patrones ineficientes (result sets grandes para listas de UI) se vuelven más visibles, pero pueden optimizarse de forma dirigida.
  • Unicode: En versiones modernas de Delphi Unicode es estándar. La cadena FireDAC (librería cliente, opciones de conexión, collation de BD, tipos de campo) debe ser consistente, si no aparecen problemas de caracteres y comparaciones.
  • Deployment: Dependiendo de la BD se necesitan librerías cliente (p. ej. libpq para PostgreSQL). Esto debe planificarse pronto para evitar sorpresas en producción.

Imagen objetivo para una arquitectura con FireDAC: estable, testeable, ampliable

Una sustitución de BDE no debería terminar en un „FireDAC por todas partes y de cualquier forma“. Una imagen objetivo sólida es especialmente valiosa si la aplicación se va a seguir desarrollando o a integrar en servicios/portales.

Objetivo mínimo: una capa de conexión unificada

En lugar de conexiones distribuidas por formularios conviene una capa central de conexión:

  • Creación y configuración de TFDConnection en un solo lugar
  • Timeouts, Encoding/CharacterSet, manejo de errores unificados
  • Conmutación Dev/Test/Prod sin trabajo manual
  • Opcional: activación central de tracing/monitoring para casos de diagnóstico

Recomendado: límites claros de transacción en la lógica de negocio

Muchas aplicaciones antiguas dispersan cambios de datos en eventos de UI. Eso aumenta el riesgo de actualizaciones parciales y dificulta las pruebas. Un enfoque estable con FireDAC es: el caso de uso (servicio/lógica de negocio) inicia y termina la transacción, no la UI. Incluso en una software de escritorio VCL puro se genera así un núcleo robusto que posteriormente es más sencillo reutilizar como servicio o API.

Escalable hacia servicios y REST

Quien más adelante añada un REST-Server, opere Windows- o Linux-Services o quiera conectar un portal de clientes, se beneficiará de una capa de datos limpia. FireDAC es adecuada si la gestión de conexiones, el manejo de errores y, según la carga del servidor, el pooling se contemplan al menos como imagen objetivo. No es necesario implementar todo en el primer paso, pero la arquitectura no debería impedirlo.

Estrategia de migración: introducir FireDAC por fases y desmantelar BDE con control

En entornos B2B un enfoque ‚big-bang‘ raramente es realista: demasiados procesos de negocio, demasiada responsabilidad operativa, poca tolerancia a largos tiempos de inactividad. Una sustitución de BDE por fases suele ser la vía segura.

Fase 1: inventario y mapa de riesgos

Un inventario útil no solo contabiliza componentes, sino que evalúa comportamientos y acoplamientos:

  • ¿Qué(s) base(s) de datos se usan: Paradox/dBase, Firebird/InterBase, SQL Server, PostgreSQL, MariaDB?
  • ¿Dónde hay accesos con TTable, dónde se usa SQL vía TQuery, dónde Stored Procedures?
  • ¿Cómo se gestionan las transacciones hoy (explícitas, implícitas, Cached Updates, patrones mixtos)?
  • ¿Qué informes/exports esperan propiedades concretas de los Datasets (ordenación, filtros, campos calculados)?
  • ¿Qué componentes de terceros o frameworks propios son específicos de BDE?

De este mapa se deduce si la sustitución afecta „solo“ al acceso o si es razonable o necesario paralelamente una reestructuración de la base de datos (p. ej. Paradox → SQL Server/PostgreSQL/MariaDB).

Fase 2: FireDAC-Foundation (sin cambiar la UI)

Antes de migrar pantallas, FireDAC debería estar técnicamente bien establecido:

  • DataModule central o clase de servicio con TFDConnection
  • Modelo de configuración para cadenas de conexión (p. ej. INI/JSON) y gestión limpia de secrets
  • Manejo de errores estandarizado (convertir DB-Exceptions en mensajes comprensibles y logueables)
  • Opciones de tracing/monitoring para el piloto (activables de forma dirigida, no permanentemente „ruidosas“)

Es importante que de esto emerjan estándares vinculantes: convenciones de nombres, reglas de parámetros, esquema de logging, ajustes por defecto por base de datos.

Fase 3: módulo piloto con relevancia funcional real

Un buen piloto está delimitado funcionalmente pero se usa en la práctica. Objetivo: desarrollar y verificar patrones.

  • TQueryTFDQuery (incl. parametrización y tipado)
  • Definir el marco de transacción y hacerlo visible en el código
  • Demostrar igualdad de resultados (comparar conjuntos de resultados relevantes funcionalmente)
  • Medir rendimiento (tiempos de respuesta, carga DB, tráfico de red)

Al final del piloto debería existir una checklist interna que guíe la migración de cada módulo. Eso reduce el riesgo y hace el esfuerzo más predecible.

Fase 4: migración en superficie y limpieza del despliegue

Tras el piloto se migra módulo a módulo. Paralelamente se elimina BDE como dependencia operativa:

  • Eliminar scripts de instalador y documentación de configuraciones con BDE
  • Eliminar definiciones de alias, configuraciones NetDir y rutas especiales
  • Alinear la pipeline de build/release con las nuevas dependencias (librerías cliente, drivers)

Precisamente este desmantelamiento es esencial: mientras queden componentes de BDE en el despliegue, el riesgo operativo persiste.

Puntos de tropiezo: causas frecuentes de efectos colaterales funcionales

Muchas migraciones no fracasan por FireDAC, sino por suposiciones implícitas en el código legado. Estas áreas deben priorizarse pronto.

Dialectos SQL y SQL crecido históricamente

Las aplicaciones BDE a menudo contienen SQL que „casualmente“ funcionaba con un driver concreto: joins implícitos, uso inconsistente de alias, funciones específicas de BD, ordenaciones no deterministas. En la migración aplica:

  • Hacer el SQL explícito (sintaxis JOIN en lugar de joins implícitos en WHERE)
  • Revisar palabras reservadas e identificadores (p. ej. DATE, USER, ORDER como nombres de campo)
  • Unificar o encapsular funciones de fecha/hora y de cadena

FireDAC ofrece opciones de adaptación, pero la solución sostenible es SQL conforme a la BD y legible.

Mapeo de tipos de datos: Boolean, Fecha/Hora, Memo/Blob, NULL

En la práctica BDE interpretaba mucho. FireDAC es más preciso —lo cual es bueno, pero exige reglas. Temas típicos:

  • Boolean: BIT/SMALLINT/CHAR(1) – definirlo claramente a nivel funcional, evitar conversiones implícitas
  • Fecha/Hora: DATETIME vs. DATETIME2, milisegundos, lógica de ordenación/comparación; cuestiones de zona horaria en sistemas distribuidos
  • Memo/Blob: Comportamiento de fetch (OnDemand), encoding, consumo de memoria en el cliente
  • NULLability: Código legado que mezcla cadenas vacías y NULL conduce a errores lógicos difíciles de detectar

Ha funcionado bien un catálogo de tipos delgado: para cada tabla/columna relevante definir tipos objetivo (DB y Delphi) más reglas sobre NULL, valores por defecto y formatos.

Transacciones: de implícito a orquestado conscientemente

En proyectos legacy de Delphi es frecuente el error de confiar en commits implícitos („si cierro el dataset, está guardado“). FireDAC aporta APIs claras (StartTransaction, Commit, Rollback). La ventaja de modernizar surge cuando las transacciones se entienden como marco funcional:

  • El caso de uso inicia la transacción
  • Varios updates se ejecutan dentro de la misma Connection
  • Commit/Rollback se realiza de forma central con manejo de errores rastreable

Eso reduce inconsistencias y es crucial si la aplicación luego se amplía con servicios o interfaces.

Cached Updates y manejo de conflictos (concurrencia)

Muchas aplicaciones BDE usan Cached Updates como mecanismo de „edición offline“. FireDAC puede ofrecer algo similar, pero las reglas deben definirse explícitamente:

  • ¿Qué campos son clave y cuáles sirven para la comprobación de concurrencia?
  • ¿Cómo se resuelven los conflictos (RowVersion/Timestamp, „last write wins“, decisión del usuario)?
  • ¿Qué ocurre ante errores parciales en operaciones por lotes?

En modernizaciones suele ser sensato llevar la lógica de resolución de conflictos más cerca de la lógica de negocio o hacia una capa de servicio, en lugar de ocultarla exclusivamente en el comportamiento de los datasets en la UI.

Aplicaciones con fuerte dependencia de TTable/Paradox: FireDAC no es la única obra

Si la aplicación depende fuertemente de accesos basados en archivos (TTable sobre Paradox), decir „BDE por FireDAC“ es solo parte de la verdad. FireDAC está pensado principalmente para bases de datos SQL. Entonces la decisión central es: ¿se moderniza el almacenamiento a una BD servidor?

  • Migración a SQL Server, PostgreSQL o MariaDB
  • Introducción de un concepto de roles/permiso y procesos claros de backup/restore
  • Funcionamiento multiusuario estable sin problemas de file-locking

Si un cambio inmediato de base de datos no es posible por razones organizativas, un enfoque en dos etapas suele ser pragmático: primero estabilizar la capa de acceso y reducir el acoplamiento de la UI, luego realizar la migración de datos con una estrategia de pruebas y cutover clara.

Reporting, exportaciones y componentes de terceros

Los informes dependen a menudo de detalles: ordenaciones, secuencias de filtros, campos calculados, comportamiento Master/Detail. Para una transición controlada:

  • Identificar los informes críticos y tratarlos como suite de pruebas de regresión
  • Generar conjuntos de datos para informes de forma determinista (views/stored procedures o queries claramente definidas)
  • Reducir cadenas de filtros en la UI que dependan del comportamiento del Dataset

El objetivo es igualdad reproducible de resultados, especialmente en cálculos sujetos a auditoría.

Actualización de arquitectura durante la migración a FireDAC: desacoplar de forma pragmática

La sustitución de BDE es un buen momento para extraer el acceso a datos fuera de formularios y manejadores de eventos. Esto no implica un proyecto de re-arquitectura completo. Medidas moderadas suelen producir un gran impacto.

Estructura objetivo pragmática (conectable a una arquitectura Layer-3)

  • Connection/Unit-of-Work: gestiona Connection y transacción, proporciona objetos Query
  • Repository/DAO: encapsula SQL y acceso por ámbito funcional
  • Service/Caso de uso: orquesta lógica de negocio, validaciones y marco transaccional

Esta estructura es compatible con una posterior Layer-3 Architektur y facilita proyectos siguientes: interfaces REST, servicios en segundo plano, clientes multiplataforma o la integración con portales.

Efecto importante: menos efectos colaterales globales

Muchos proyectos BDE trabajan con data modules globales y estados implícitos. FireDAC puede funcionar así también, pero la modernización es más estable si los estados se localizan: ciclo de vida claro de Connection/Transacción, rutas de error reproducibles y menos „efectos secundarios“ por estado global.

Rendimiento y estabilidad: configurar FireDAC de forma dirigida

FireDAC es potente, pero el rendimiento resulta de la combinación entre SQL, indexación, estrategia de fetch y gestión de conexiones. En migraciones se observa con frecuencia que BDE ocultaba patrones ineficientes porque antes los volúmenes eran menores o el sistema corría localmente.

Estrategias de fetch y listas de UI

  • Las listas cargan solo las columnas necesarias (no SELECT *)
  • Ordenación en el servidor y filtros dirigidos en lugar de cadenas en el cliente
  • Para grandes volúmenes: paginación o carga incremental
  • Campos LOB (Memo/Blob) cargar solo cuando sean realmente necesarios

FireDAC ofrece opciones adecuadas; lo decisivo es la decisión funcional sobre qué datos necesita realmente un usuario en cada contexto.

Prepared Statements y parametrización

Queries parametrizadas no solo son un estándar de seguridad (evitar SQL-Injection), sino que en muchas bases de datos mejoran la reutilización de planes. Además, la falta de higiene de tipos en el código legado queda visible y puede corregirse de forma dirigida. En sistemas maduros esto supone una ganancia de calidad que se traduce en menos casos especiales y mejor diagnóstico.

Gestión de conexiones: Escritorio vs. Servicio/REST

En clientes de escritorio clásicos suele ser práctico una Connection de larga duración por cliente. En servicios o servidores REST se usan patrones distintos: peticiones de corta duración, accesos paralelos, pooling de conexiones. Quien vea la sustitución de BDE como parte de una modernización mayor debería contemplar estas diferencias en la imagen objetivo, para que fases posteriores no tengan que empezar de nuevo con el acceso a datos.

Estrategia de pruebas y aceptación: demostrar igualdad de resultados

En la sustitución de BDE el riesgo principal rara vez es „la aplicación no arranca“, sino desviaciones funcionales sutiles: ordenaciones, redondeos, manejo de NULL, límites transaccionales, efectos colaterales de triggers/constraints en BD modernas. Una estrategia de pruebas sólida incluye:

  • Regresión SQL: ejecutar consultas críticas contra datos de prueba definidos y comparar conjuntos de resultados
  • Pruebas de casos de uso: comprobar procesos núcleo (p. ej. contabilizar, aprobar, anular, import/export) con valores esperados
  • Pruebas multiusuario/estabilidad: comportamiento de bloqueo, deadlocks, timeouts, duración de transacciones
  • Logging/Observability: capturar errores de BD de forma estructurada (códigos de error, contexto, query afectada), no solo „diálogo de error“

Las empresas obtienen aquí un doble beneficio: las pruebas aseguran la migración y crean una base para desplegar cambios posteriores del modelo de datos o de interfaces de forma controlada.

Bases de datos objetivo en proyectos FireDAC: opciones típicas

FireDAC es deliberadamente amplio, pero cada base de datos tiene sus reglas. En modernizaciones suelen aparecer los siguientes objetivos:

SQL Server

Típico en paisajes IT dominados por Windows. Puntos importantes: tipos Unicode consistentes (NVARCHAR), tipos modernos de tiempo (DATETIME2), estrategia clara para Identity/Sequences, niveles de aislamiento definidos y un manejo cuidado de bloqueos.

PostgreSQL

Fuerte en integridad y características. En migraciones relevante: sensibilidad a mayúsculas/minúsculas de identificadores, tipos de datos (boolean/uuid/jsonb) y diferencias de dialecto. FireDAC puede conectar PostgreSQL de forma productiva si las librerías cliente y el despliegue están bien organizados.

MariaDB/MySQL

Frecuente cuando el software de escritorio convive con componentes web o de portal. Importante: utf8mb4 de forma consistente, InnoDB como engine, estrategia de transacciones e índices clara. FireDAC soporta MariaDB/MySQL de manera fiable si los parámetros y tipos están bien definidos.

Independientemente del objetivo, una sustitución de BDE será más estable si paralelamente se definen estándares de base de datos (versionado de esquemas, scripts de migración, roles/permiso, backup/restore, monitorización).

Recomendaciones prácticas para una migración FireDAC planificable

Reducir dependencias antes de cambiar masivamente componentes

Si SQL y la lógica de dataset están incrustados en muchos formularios, cada cambio resulta caro. Un paso intermedio que agrupe SQL en pocas clases de acceso reduce considerablemente la superficie de migración. Después, el propio cambio a FireDAC suele ser más rápido y con menos riesgo.

Migrar temprano un proceso transaccional central

„Listas simples“ son cómodas para empezar, pero reducir riesgo implica migrar pronto un proceso con actualizaciones reales y dependencias. Si allí las transacciones, tipos y rutas de error están controladas, la migración restante será más planificable.

Tratar el despliegue como trabajo de igual peso

El cambio de código es solo la mitad. Aclare pronto:

  • ¿Qué librerías cliente/drivers se necesitan por BD?
  • ¿Cómo se versionan y distribuyen estas librerías (firmado si procede)?
  • ¿Cómo se gestionan los parámetros de conexión y quién puede modificarlos?
  • ¿Cuál es el proceso de soporte cuando fallan accesos a BD?

Usar FireDAC como ancla de modernización —sin empezar de cero

La sustitución es una oportunidad para palancas de calidad dirigidas: parametrización, límites transaccionales, logging, mensajes de error uniformes. Eso reduce costes operativos y hace ampliaciones posteriores (interfaces, servicios) mucho menos arriesgadas, sin tener que reinventar funcionalmente la aplicación.

Conclusión: la sustitución de BDE por FireDAC es modernización controlable —si se aborda como tema arquitectónico

BDE ha sostenido muchas aplicaciones Delphi durante años. Hoy sin embargo es un riesgo estructural: para 64‑bit, para despliegue estandarizado, para requisitos modernos de seguridad y para la conexión a bases de datos contemporáneas. FireDAC es el sucesor apropiado, pero no como un „cambio de componente de la noche a la mañana“. La ruta segura es una migración por fases con una Foundation limpia, módulo piloto, reglas vinculantes para tipos de datos y transacciones y pruebas que demuestren la igualdad de resultados.

Si desea planificar la sustitución de BDE de forma estructurada —incluyendo análisis del parque, ruta de migración y arquitectura objetivo con FireDAC— el siguiente paso más sensato es un ajuste técnico de sus condiciones marco: https://net-base-software-gmbh.de/kontakt/

siguiente paso

Cuando un tema se convierte en un proyecto real, arquitectura, entorno existente y operación deben considerarse conjuntamente desde el inicio.

No solo apoyamos en consultas puntuales, sino también cuando, a partir de fragmentos de código fuente, temas heredados o ideas de portales, debe consolidarse un proyecto empresarial robusto.

  • La situación actual, el estado objetivo y los riesgos técnicos se evalúan conjuntamente.
  • REST, el acceso a datos, los portales y el despliegue no se relegan a fases posteriores.
  • Usted detecta con antelación qué camino es viable, tanto económica como operativamente.

Compartir entrada

Compartir esta publicación directamente

LinkedIn, X, XING, Facebook, WhatsApp y correo electrónico están disponibles de inmediato. Para Instagram preparamos el enlace y el texto breve directamente.

Correo electrónico

Instagram se abre en una nueva pestaña. El enlace y el texto breve se copian previamente en el portapapeles.