Sus aplicaciones Delphi, migradas a la web
Delphi fue una opción muy habitual para el software de gestión en los años noventa y dos mil, y muchos de esos programas se siguen usando a diario, a menudo con tablas Paradox o dBase leídas a través del BDE. Los migramos a aplicaciones web sobre una base de datos SQL, con los mismos datos y las mismas reglas, para que ya no necesite equipos configurados al milímetro para hacerlos funcionar.
Por qué ahora
Embarcadero, que mantiene Delphi hoy en día, ha declarado obsoleto el Borland Database Engine. Su documentación indica que el BDE no se va a mejorar, que nunca admitirá Unicode y que no debe usarse en desarrollos nuevos, y recomienda pasar a FireDAC. Aun así, la mayoría de los programas Delphi antiguos siguen leyendo y escribiendo sus tablas Paradox o dBase a través de él.
El BDE se diseñó para Windows de 32 bits y para compartir archivos en una red local. Las tablas Paradox en una unidad compartida dependen de archivos de bloqueo y de parámetros del BDE que deben ser idénticos en todos los equipos, y cuando uno los tiene mal, las tablas y los índices pueden dañarse. Cada equipo nuevo, y cada paso a una versión nueva de Windows, es otra instalación que hay que configurar a mano.
- Windows 10Fin del soporte de Microsoft
Qué migramos
El programa y los archivos de datos de los que depende, estén como estén.
Formularios y controles enlazados a datos
Formularios de archivos .dfm con
TDBGrid,TDBEdit,TDBLookupComboBoxy estructuras de maestro y detalle. Se convierten en páginas web con los mismos campos y el mismo orden de trabajo.Datos de Paradox, dBase e InterBase
Tablas leídas a través del BDE, o bases de datos como InterBase, Firebird, SQL Server y Oracle. Pasamos los datos a SQL Server o MySQL y conservamos claves, índices y relaciones.
Módulos de datos y lógica de negocio
Código en unidades
TDataModule, en eventos de datasets comoBeforePostyOnCalcFields, y en campos calculados y de búsqueda. Reunimos esas reglas en servicios en el servidor.Informes
Diseños de QuickReport, ReportBuilder, Rave Reports o FastReport, incluidos los que tienen código en sus eventos. Se convierten en documentos PDF con el mismo contenido.
Componentes de terceros
Rejillas, editores y utilidades de paquetes como DevExpress, TMS, InfoPower o RxLib, a menudo atados a una sola versión de Delphi. Comprobamos qué funciones usa realmente el programa.
Importaciones, exportaciones y tareas programadas
Intercambios de archivos de texto y CSV con otros sistemas, exportaciones para la gestoría y programas lanzados por el Programador de tareas de Windows. Se convierten en tareas programadas en el servidor.
Cómo queda la versión web
- Inicio
- Artículos1284
- Movimientos
- Proveedores
- Informes
| Cable H07V-K 1,5 mm², azulEL-10215 · A-03-2 | 1850 m | |
| Magnetotérmico C16 1P+NEL-20431 · B-01-4 | 46 ud | Bajo mínimo |
| Caja de empalmes 100×100EL-30112 · B-02-1 | 312 ud | |
| Panel LED 60×60, 36 WEL-40877 · C-05-3 | 18 ud | Bajo mínimo |
| Diferencial 40 A 30 mAEL-20455 · B-01-5 | 27 ud | |
| Tubo corrugado 20 mm, grisEL-50310 · A-07-1 | 940 m | |
| Base de enchufe 16 AEL-60204 · B-03-2 | 9 ud | Bajo mínimo |
| Código | Descripción | Ubicación | Existencias | Mín. | Ud. |
|---|---|---|---|---|---|
| EL-10215 | Cable H07V-K 1,5 mm², azul | A-03-2 | 1850 | 500 | m |
| EL-20431 | Magnetotérmico C16 1P+N | B-01-4 | 46 | 60 | ud |
| EL-30112 | Caja de empalmes 100×100 | B-02-1 | 312 | 100 | ud |
| EL-40877 | Panel LED 60×60, 36 W | C-05-3 | 18 | 24 | ud |
| EL-20455 | Diferencial 40 A 30 mA | B-01-5 | 27 | 20 | ud |
| EL-50310 | Tubo corrugado 20 mm, gris | A-07-1 | 940 | 300 | m |
| EL-60204 | Base de enchufe 16 A | B-03-2 | 9 | 40 | ud |
Un programa de almacén tal como podría verse en Delphi sobre Windows XP, y los mismos datos en una aplicación web.
Arrastre el control o use las flechas del teclado.
Dónde acaba cada parte
- En Delphi: Formularios (.dfm) y unidades (.pas)
- En la aplicación web: Páginas web, con la lógica en el servidor
- En Delphi: Tablas Paradox o dBase a través del BDE
- En la aplicación web: SQL Server o MySQL, con claves y relaciones
- En Delphi: Campos calculados y de búsqueda
- En la aplicación web: Cálculos y combinaciones en la base de datos o en los servicios
- En Delphi: Alias y parámetros del BDE en cada equipo
- En la aplicación web: Una sola conexión, configurada en el servidor
- En Delphi: Diseños de QuickReport o FastReport
- En la aplicación web: Documentos PDF generados por el servidor
- En Delphi: Una unidad de red compartida por todos
- En la aplicación web: Acceso simultáneo gestionado por la base de datos
Cómo se hace la migración
Análisis en 48 horas
Nos envía el programa con su carpeta de datos (archivos Paradox o dBase, o una copia de seguridad de la base de datos), además del código fuente (.dpr, .pas, .dfm) si lo tiene. En 48 horas le respondemos con un informe por escrito: qué hace hoy el programa, dónde están los riesgos, cómo se organizaría la versión web, un precio cerrado para un módulo piloto y una estimación para el resto. Es gratuito y no le compromete a nada.
Módulo piloto
Desarrollamos una parte de la aplicación sobre una copia de sus datos reales, normalmente la que más se usa. Su equipo trabaja con ella a diario antes de que usted decida sobre el resto.
Pruebas automáticas entre lo antiguo y lo nuevo
Pasamos los mismos registros por el programa Delphi y por la nueva aplicación y comparamos existencias, totales y documentos impresos. Cada regla que encontramos tiene su prueba automática, que da los mismos datos de entrada al programa antiguo y a la nueva aplicación y comprueba que los resultados coinciden. Usted recibe los resultados de las pruebas.
30 días en paralelo
Cuando la aplicación completa está lista, el programa Delphi sigue en uso junto a ella durante 30 días. Cualquier diferencia aparece mientras el programa antiguo sigue ahí, y la corregimos dentro del precio acordado.
Los problemas habituales, y cómo los resolvemos
Cómo se comportan el BDE y Paradox
Las tablas Paradox dependen de archivos de bloqueo, de un archivo de control de red compartido (
PDOXUSRS.NET) y de parámetros del BDE comoLOCAL SHAREque deben coincidir en todos los equipos. Los índices dañados y los errores «Table is busy» son frecuentes. Antes de migrar reparamos lo que se puede reparar y le informamos de los registros que no se pueden leer.Codificación de caracteres
El BDE guarda el texto en una página de códigos fijada por el controlador de idioma de la tabla, mientras que Delphi 2009 y versiones posteriores usan cadenas Unicode. Las letras acentuadas, la eñe y los símbolos son donde más suele fallar una migración, así que revisamos la codificación de cada tabla y comparamos con usted muestras del texto convertido.
Lógica escondida en los eventos de los datasets
Las reglas en
BeforePost,OnValidateuOnCalcFieldsse ejecutan sin avisar cada vez que se guarda o se muestra un registro, y es fácil pasarlas por alto si solo se miran los formularios. Buscamos en el código cada manejador de eventos y enumeramos las reglas que aplica.Campos calculados y de búsqueda
Campos que solo existen en el programa, no en las tablas, aparecen en pantalla y en los informes como si fueran datos guardados. Los reproducimos como valores calculados y los comprobamos frente a los originales.
Componentes sin código fuente
Algunos paquetes de terceros se compraron como unidades compiladas para una sola versión de Delphi. Si el programa usa alguno para un cálculo y no solo para mostrar datos, reconstruimos su comportamiento a partir de los resultados y lo confirmamos con las pruebas de comparación.
Formatos de fechas y números
Los campos de fecha de Paradox y dBase, los años de dos dígitos introducidos hace mucho tiempo y los separadores decimales que dependen de la configuración regional de Windows requieren un tratamiento explícito cuando los datos pasan a una base de datos SQL. Enumeramos las anomalías encontradas durante la importación y las resolvemos con usted.
Precio y forma de pago
Análisis
Gratuito
por escrito, en 48 horas
Módulo piloto
1000–1500 €
normalmente, 50 % al empezar y 50 % al aprobarlo
El análisis es gratuito. Si decide no seguir adelante, se queda con el informe y no nos debe nada.
Los precios son cerrados y se acuerdan por escrito antes de empezar. Si cambia el alcance, le enviamos un nuevo presupuesto por escrito y esperamos su aprobación antes de hacer el trabajo adicional.
En una migración completa, nuestro objetivo es quedar entre un 40 y un 60 % por debajo del presupuesto habitual de una agencia. Podemos hacerlo porque somos un estudio pequeño, sin oficinas que pagar ni equipo comercial.
Precios sin IVA.
Una migración real, comprobada con pruebas
Northwind es la base de datos de ejemplo que Microsoft incluía con Access, no un cliente nuestro. Migramos una copia pública a SQLite y PostgreSQL, comparamos cada tabla y cada consulta con el original mediante pruebas automáticas y construimos sobre el resultado una aplicación web que funciona. El caso práctico da las cifras y el informe de equivalencia detalla cada comprobación.
Northwind es una base de datos de Access, pero con Delphi seguimos el mismo método: migrar, comprobar frente al original y mantener ambos en paralelo.
Informe de equivalencia (en inglés) · Vista previa y análisis de ejemplo (demo)

Preguntas frecuentes
Nuestro programa Delphi usa tablas Paradox en una unidad de red. ¿Pueden migrar los datos?
Sí. Leemos directamente los archivos Paradox o dBase, los convertimos a SQL Server o MySQL y comparamos el número de registros y los totales antes y después. Los registros dañados se le comunican, no se descartan en silencio.
¿No podríamos simplemente pasar a una versión más reciente de Delphi?
Es una opción, y para algunos programas es la más sensata: la aplicación sigue siendo un programa de Windows, FireDAC sustituye al BDE y el código se pone al día. Si necesita acceso desde cualquier navegador y no instalar nada en cada equipo, una aplicación web encaja mejor. Cuando ambas tienen sentido, el análisis las compara.
No tenemos el código fuente. ¿Es un problema?
No necesariamente. Podemos trabajar a partir del programa en uso, sus archivos de datos y grabaciones de cómo lo usa el equipo. Con el código fuente el análisis es más preciso, y donde falta información lo decimos.
¿Con qué versiones de Delphi trabajan?
Con programas escritos en cualquier versión, desde las primeras de Borland de los años noventa hasta las actuales de Embarcadero. La versión importa sobre todo por el manejo de cadenas y por los componentes disponibles, y la indicamos en el análisis.
¿Puede la aplicación web seguir usando nuestra base de datos Firebird o InterBase?
Sí, si otros programas siguen dependiendo de ella. En ese caso la aplicación web se conecta a la misma base de datos, y el cambio de base de datos puede hacerse más adelante, o nunca.
¿Qué ocurre durante los 30 días en paralelo?
Su equipo tiene el programa Delphi a mano mientras trabaja en la nueva aplicación, para comprobar los resultados con trabajo real. Cualquier diferencia que encontremos en ese periodo se corrige dentro del precio acordado.
Otros servicios
- De Microsoft Access a aplicación webTablas, consultas, formularios, informes y VBA llevados a una aplicación web sobre SQL Server o MySQL.
- De Excel VBA a aplicación webLibros con macros, UserForms y hojas vinculadas convertidos en una aplicación web multiusuario.
- Migración de aplicaciones VB6Programas en Visual Basic 6 llevados a C# y a la web, con o sin el código fuente.
- Modernización de .NET (WinForms, WebForms)Aplicaciones WinForms y ASP.NET Web Forms llevadas a ASP.NET Core, conservando lo que aún funciona.
- Software a medida e integracionesNuevas aplicaciones de gestión, integraciones mediante API REST, migración de datos y mantenimiento.
Contacto
Por correo electrónico:
riccardo@Envíenos el programa y su carpeta de datos, con datos de prueba si lo prefiere, o una breve descripción de lo que hace. Le responderemos en un día laborable.
Trabajamos desde Italia.