Net-Base Revista

29.05.2026

BDE-Substitució: Com modernitzar les Delphi-aplicacions sense risc per a les dades ni risc operatiu

Moltes aplicacions Delphi encara fan servir la Borland Database Engine (BDE) — i ho paguen amb dificultats operatives, problemes de controladors, riscos de seguretat i actualitzacions de plataforma bloquejades. Aquest article mostra com planificar amb rigor tècnic la substitució de BDE: migració de dades...

29.05.2026

Del tema de la revista a la pràctica del projecte

Pàgines de serveis i tècniques pertinents per a l'article

Una BDE-Ablösung no figura a la llista de desitjos de moltes empreses, però en algun moment apareix al mapa de riscos. La Borland Database Engine (BDE) és una pila històrica d’accés a dades per a aplicacions Delphi, que en entorns consolidats sovint encara gestiona taules Paradox o connexions de bases de dades més antigues. Mentre tot «d’alguna manera funciona», el tema sembla controlable. A la pràctica, però, són habitualment l’explotació, les actualitzacions i les interfícies les primeres a fallar: canvis a 64 bits, noves versions de Windows, bases de dades modernes, requisits de seguretat, Terminalserver/VDI o simplement el desig d’una administració estable i auditable.

Aquest article situa amb realisme on pot fallar avui una aplicació basada en BDE, com planificar la seva substitució perquè dades, interfícies i processos continuïn funcionant correctament, i quins camins de migració han demostrat ser eficaços en la pràctica. El focus no és la «cosmètica del codi», sinó la seguretat d’operació, la qualitat de les dades, la mantenibilitat i la possibilitat de modernitzar l’aplicació pas a pas — sense un Big-Bang innecessari.

Per què la BDE es converteix en un problema en funcionament

La BDE no només és «vella», sinó que ja no encaixa amb els estàndards IT actuals en diverses dimensions. Això rarament es manifesta amb un únic gran fall; més aviat apareix en molts petits punts de fricció que requereixen temps dels equips IT i incrementen el risc.

Símptomes tècnics i organizatius

  • Instal·lacions client inestables o difícils de mantenir: la configuració de BDE, la gestió d’alias, rutes, permisos d’escriptura i dependències sovint no es poden empaquetar de manera neta. En entorns Terminalserver o VDI aquests temes s’escalen ràpidament.
  • Límits de controladors i compatibilitat: les bases de dades modernes i les configuracions de seguretat (p. ex., estàndards TLS, mètodes d’autenticació) ja no es poden reproduir de manera robusta a través de la connectivitat BDE.
  • Conflictes 32/64 bits: Moltes empreses, amb raó, volen desplegar clients de 64 bits, noves versions d’Office, piles d’impressió/PDF actuals o dispositius ARM64. En aquests casos la BDE esdevé un fre.
  • Seguretat i hardening: rutes de dades antigues, fitxers locals, requisits de permisos poc clars, absència d’habilitats d’encriptació o d’auditoria no s’ajusten a les expectatives de seguretat i compliment normatiu actuals.
  • Manca de viabilitat futura a les interfícies: Quan es requereixen APIs (REST), una identitat central (p. ex. SAML 2.0 com a estàndard per a Single Sign-on) o integració basada en serveis, un nucli BDE actua com una ancla per al client heredat.

Clau: Una BDE-Ablösung rarament és «només» la substitució d’una biblioteca. Toca models de dades, transaccions, locking (comportament de bloqueig), concurrència, gestió d’errors, desplegaments i sovint també el model de permisos.

Situar amb realisme la BDE-Ablösung: Què s’està substituint exactament?

En aplicacions existents, «BDE» sol ser un terme genèric. Per a una planificació sòlida cal que quedi clar quins papers assumeix la BDE en el sistema concret:

  • Capa d’accés a dades: conjunts de dades, consultes, crides a procediments emmagatzemats, comportament del cursor, assignació de paràmetres.
  • Capa de controladors/connectivitat: Connexió a Paradox, dBASE, InterBase/Firebird o també SQL Server/Oracle a través de rutes de controladors antigues.
  • Configuració: BDE-Administrator, Aliases, NetDir, rutes locals, directoris compartits.
  • Semàntica: Com es fa el bloqueig? Com s’interpreten els formats de data/nombre? Quins tipus de camps i índexs s’han utilitzat històricament?

Per a la direcció de TI i l’administració, aquesta clarificació marca la diferència entre una «petita actualització» i un projecte estructurat de modernització. Només després es pot decidir si n’hi ha prou amb una modernització exclusiva de l’accés a dades o si, al mateix temps, convé una migració de la base de dades o una higiene d’arquitectura.

Arquitectures objectiu segons BDE: rutes típiques

No hi ha una única substitució. A la pràctica s’han establert tres rutes que també es poden combinar:

1) Canvi directe a FireDAC amb la base de dades existent

BDE-substitució amb connexió nativa és una biblioteca d’accés a dades moderna per a Delphi, que admet diferents bases de dades i controladors i en l’operativa diària és notablement més automatitzable que les configuracions de BDE. Aquest camí és adequat quan la base de dades en si és robusta i el risc principal resideix en la capa d’accés antiga. És important provar acuradament els paràmetres de connexió, les transaccions i les correspondències de tipus (p. ex. String/Unicode, data/hora).

2) Migració de Paradox/basada en fitxers a Client-Server (PostgreSQL, SQL Server, MariaDB)

Si encara s’utilitzen taules Paradox o altres estructures basades en fitxers, la substitució de BDE sovint és el moment adequat per fer el pas cap a una base de dades centralitzada. Client-Server vol dir aquí: les transaccions s’asseguren al costat del servidor, les còpies de seguretat es poden gestionar de manera centralitzada, els permisos es defineixen a nivell de BD, i els accessos simultanis es poden controlar millor. Per a l’operació i la seguretat, això sol ser la palanca més gran.

3) Desacoblament via serveis: REST-API davant de la lògica del sistema existent

En lloc de reestructurar el client completament de cop, un servei REST (REST significa „Representational State Transfer“, un estil estès per a interfícies basades en HTTP) pot servir com a capa d’integració. Això permet connectar portals, sistemes externs o nous mòduls sense que cada accés arribi directament des del client llegat. Aquest camí és especialment útil si l’aplicació ha de créixer pas a pas cap a una arquitectura modular.

Treballs previs que determinen l’èxit o l’estancament

Una substitució de BDE rarament fracassa per falta de possibilitat tècnica, sinó per falta de transparència en les dades i els processos. Els treballs previs següents redueixen perceptiblement el risc de projecte i d’operació.

Inventari: dades, funcions, operació

  • Inventari de dades: Quines taules, fitxers, índexs, referències i camps especials existeixen? Quin volum de dades hi ha, com de ràpid creix, on es troben avui?
  • Límits de transacció: On el procés de negoci espera „tot o res“? On s’ha operat fins ara amb actualitzacions parcials de manera implícita?
  • Procés batch i processos auxiliars: Import/Export, reporting, generació de PDFs, execucions nocturnes, feines d’interfície. Aquestes parts sovint són les veritables fonts d’errors en migracions.
  • Model operatiu: Com es desplega (MSI, Copy-Deploy, distribució de programari)? Quins drets es necessiten als clients? Quins logs existeixen? Com es presta el suport?

Per a aquesta fase val la pena involucrar conscientment coneixements d’administració: «Què passa en un canvi de client?», «Com reaccionem davant de dades defectuoses?», «Quant de temps triga una RESTauració?» — aquestes són les preguntes que més endavant determinaran el rollout.

Fer visibles la qualitat de les dades i les regles implícites

Precisament en models de dades Paradox o en models formats històricament, moltes regles són implícites: rangs de valors, codis especials, camps “buits” que duen significat, o referències sense claus foranes reals. En una migració a PostgreSQL/SQL Server/MariaDB cal decidir quines regles s’aplicaran tècnicament en el futur (Constraints) i quines s’validaran primer de forma no obligatòria (per exemple mitjançant treballs de comprovació). Aquesta decisió no és un punt acadèmic: regles massa estrictes poden bloquejar una importació en producció, regles massa laxes poden conservar errors a llarg termini.

Preguntes tècniques clau en l’BDE-substitució

Per als decisors «canviar l’accés a dades» sovint sembla senzill. En la pràctica hi ha diverses palanques tècniques que afecten directament l’operació, l’estabilitat i la càrrega de suport.

Tipus de dades, Unicode i ordenació

Moltes aplicacions legacy arrosseguen càrrega de l’època ANSI. En una modernització cal definir de manera inequívoca jocs de caràcters, col·lacions (collation), consideració de majúscules/minúscules i caràcters especials (Umlauts, ß). Si no, apareixen «errors fantasma»: cerques amb resultats diferents, duplicats, o exports divergents. Per això una migració a Unicode sovint forma part de la substitució —no necessàriament com un Big Bang, però sí com una etapa planificada.

Transaccions i comportament de bloqueig (Locking)

L’emmagatzematge basat en fitxers es comporta diferent que el model client‑servidor. En bases de dades SQL els Isolationslevel, els Row Locks i el Deadlock‑Handling determinen la concurrència. Per a l’operació això vol dir: cal saber quines operacions són llargues, quines taules són «hotspots» i on intervenir amb índexs adequats, transaccions més curtes o consultes optimitzades. Aquí compensa tenir un monitoring net, en lloc de limitar‑se a «se sent lent».

Patrons d’error: del diàleg del client al logging controlat

Moltes aplicacions antigues mostren errors de base de dades directament en diàlegs o escriuen missatges poc explotables. Després de l’BDE-substitució els errors han de ser rastrejables de manera central: quina query, quin usuari, quina acció, quina resposta de la base de dades? Per a l’administració és crític poder reproduir i acotar els errors sense haver d’“arreglar” cada client. En parts basades en serveis s’afegeixen logs estructurats (per exemple JSON) i IDs de correlació per seguir peticions a través de diverses components.

Deployment i configuració: lluny del proliferament d’àlies

Un objectiu freqüent és unificar la configuració: paràmetres de connexió no per client al administrador de l’BDE, sinó centrals o, quan menys, estandarditzats mitjançant fitxers de configuració/entrades de Registry que es despleguin per distribució de software. Per a servidors de terminal això és especialment rellevant. També cal evitar gestionar a mà certificats, paràmetres TLS i qüestions de proxy.

Estratègia de migració: pas a pas en lloc de Big Bang

Una substitució pot fer‑se en etapes. Això redueix el risc d’aturada i permet millores operatives primerenques mentre l’aplicació continua en ús.

Etapa 1: Accés a dades estable com a capa intercanviable

En moltes Delphi-aplicacions l’accés a les dades està distribuït per tota la UI. Un pas intermedi pràctic és una capa d’accés a dades clarament delimitada (sovint anomenada «layer»; en una Layer-3-arquitectura la UI, la lògica de negoci i l’accés a dades estan separats). L’objectiu no és la puresa acadèmica, sinó la mantenibilitat: si tots els accessos a la DB convergeixen en pocs punts, es poden canviar de manera consistent els controladors, els paràmetres i la gestió de transaccions.

Etappe 2: Parallelbetrieb und Vergleichstests

Especialment en migracions de dades, el funcionament en paral·lel és fonamental: un conjunt de dades definit es transfereix a la nova base de dades, els casos d’ús centrals es proven contra ambdós sistemes i les discrepàncies s’analitzen de manera sistemàtica. És important no reduir les proves només a obrir el formulari, sinó també incloure processos adjacents: importació/exportació, reporting, processament per lots, impressió/PDF i proves de permisos.

Etappe 3: Cutover mit Rückfallstrategie

El punt d’interruptor (Cutover) ha de planificar-se des d’una perspectiva operativa: finestra de manteniment, congelament de dades, llistes de comprovació definides, monitoratge i un escenari clar de „Rollback“. „Rollback“ no vol dir alternar indefinidament, sinó recuperar l’operativitat de manera ordenada en cas de problema. Això inclou còpies de seguretat, proves de RESTauració i un pla per assegurar la consistència de dades després d’un retrocés.

Datenbankmigration im Detail: worauf IT und Betrieb achten sollten

Quan, en el marc de la substitució de BDE de Paradox o d’altres estructures basades en fitxers, es migra cap a una base de dades SQL centralitzada, els equips d’IT s’enfronten a diverses decisions que més endavant marcaran els costos d’explotació i el suport.

Schema-Design: 1:1 übernehmen oder gezielt verbessern?

Una adopció 1:1 redueix el risc a curt termini, però sovint conserva debilitats: claus primàries inexistents, tipus de dades inconsistents, «semàntica a cadenes», longituds de camps heredades històricament. Un enfoc realista és de doble via: primer migrar de manera estable (canvis mínims), després consolidar en passos controlats. Això requereix versionar l’esquema (migracions) perquè els canvis es puguin desplegar de manera rastrejable.

Performance: Indizes und typische Abfragen früh prüfen

Els patrons d’accés típics de Paradox i de BDE rarament encaixen 1:1 amb SQL. És essencial mesurar aviat els casos d’ús principals: pantalles de cerca, llistats, assentaments, execucions per lots. A partir d’això es defineixen índexs, optimitzacions de consultes i, si cal, materialitzacions. Per a l’administració és rellevant que el rendiment no sorgeixi «per atzar», sinó que es basi en mesures i en accions rastrejables.

Backup/RESTore und Hochverfügbarkeit

Amb una base de dades central canviïn les regles del joc: les còpies de seguretat han de ser consistents, comprovades regularment i RESTaurables amb rapidesa. Les proves de RESTauració no són un luxe, sinó la base per a objectius RTO/RPO robustos (RTO = temps fins a la RESTauració, RPO = pèrdua màxima de dades en temps). Segons la criticitat s’implementen replicació, instàncies en espera o finestres de manteniment clarament regulades. Una substitució de BDE és un bon moment per definir finalment de manera clara aquests requisits operatius.

Schnittstellen und Integration: der oft unterschätzte Teil

Moltes aplicacions existents no operen de forma aïllada. Abasteixen un DMS, estan connectades a un ERP, subministren dades a BI/reporting o comuniquen amb màquines/eines. Amb la substitució de BDE les interfícies rarament canvien en l’àmbit funcional, però sí en l’àmbit tècnic.

Import/Export stabilisieren

Les fonts d’errors típiques són rutes fixes, unitats locals, formats d’Excel, codificació CSV i manca de validació. En una modernització val la pena tractar l’importació/exportació com una funció definida i provable: definició clara de format, registre (logging), llistes d’errors, reintents. Això redueix significativament els casos de suport perquè els errors deixen de colar-se en silenci.

REST-APIs com a ancla d’integració

Quan han d’integrar-se nous sistemes, sovint una API REST és la via pragmàtica. No només són importants els endpoints, sinó també els aspectes operatius: autenticació (p. ex. token), limits de taxa (Rate Limits), registre (logging), control de versions de l’API i un concepte per a canvis incompatibles (Breaking Changes). Una API desplegada sense control de versions genera més endavant dependències innecessàries.

Seguretat i permisos després de la substitució

Amb la fi de la BDE sorgeix l’oportunitat de fer els permisos més coherents. Sovint, en sistemes legacy, els drets estan implementats en part a l’aplicació i en part „a través de rutes de fitxers“. Els models objectiu moderns separen clarament:

  • Autenticació: Qui és l’usuari? (p. ex. Windows/AD, SSO via SAML 2.0)
  • Autorizació: Què pot fer a l’aplicació? (rols, permisos, tenants)
  • Drets a base de dades: L’accés de l’aplicació s’executa amb usuaris tècnics de base de dades, no amb comptes d’usuari finals; les operacions administratives sensibles estan separades.
  • Audit i traçabilitat: Els canvis importants han de poder registrar-se (qui, què, quan), sense que cada detall es perdi als fitxers de registre.

Per a la direcció d’IT és rellevant: la seguretat no s’aconsegueix amb „més diàlegs“, sinó amb responsabilitats clares i regles verificables. Precisament això sovint esdevé possible per primera vegada amb una substitució estructurada de BDE.

Pla de proves i desplegament: què compta realment a la pràctica

En les modernitzacions la testabilitat és un criteri operatiu. Com menys reproduïble, més elevat és l’esforç de suport. Un pla de desplegament pragmàtic combina mesures tècniques i organitzatives.

Tipus de proves que cal planificar

  • Proves de regressió dels processos clau: assentaments, dades mestres, cerca, informes, impressió/PDF.
  • Validació de dades: mostreig i comprovacions automatitzades (nombre, sumes, referències, duplicats).
  • Proves de càrrega/rendiment: no com a „benchmark“, sinó segons els períodes de pic reals i les execucions per lots.
  • Proves operatives: instal·lació, actualització, rollback, rotació de logs, còpia de seguretat/restore, esdeveniments de monitoratge.

Pilotatge i desplegament gradual

Un pilot amb grups d’usuaris clarament delimitats i rutes de suport definides redueix el risc. Cal recollir el feedback de manera estructurada: quins errors són defectes reals, quins són canvis de comportament per ordre/Unicode, quins són qüestions de procés? Un procés net de tickets i priorització evita que el projecte quedi encallat en el mode „tot és igual d’important“.

Quan compensa especialment la BDE-substitució — i quan cal més?

Hi ha desencadenants clars en què dubtar surt més car que actuar:

  • Canvi planificat a 64 bits o noves generacions de Windows en l’entorn client
  • Casos de suport freqüents a causa de configuració de client, rutes, permisos o entorns de terminal server
  • Necessitat d’una gestió central de dades, còpia de seguretat/restore fiable i auditories traçables
  • Noves exigències per a interfaces (portals, BI, socis externs) i seguretat

De vegades la substitució de BDE és només el primer pas: si al mateix temps cal renovar de manera fonamental la UI/UX, la lògica de procés o el model d’autoritzacions, el projecte s’hauria de planificar de manera modular. «Tot alhora» pot semblar eficient, però en moltes empreses condueix a llargues fases de congelació i a estats intermedis difícils de provar. És preferible una fulla de ruta que faci visibles aviat els avantatges operatius: accés a dades més estable, base de dades central, millors logs, i a continuació una modernització gradual addicional (p. ex. portals o serveis).

Conclusió: la substitució de BDE com a via de modernització controlada

La substitució de BDE és més que un refactoring tècnic. Ben planificada, és un pas controlat cap a un programari empresarial més fàcil d’operar: desplegaments estandarditzats, gestió de dades traçable, interfícies més clares, millors capacitats de seguretat i d’auditoria i l’opció d’acoblar blocs d’arquitectura moderna com serveis REST o portals. La clau està en una avaluació sòlida de l’estat, en una estratègia de migració gradual i en un desplegament que prengui tan seriosament l’operació i la qualitat de les dades com la funcionalitat.

Si voleu avaluar la vostra substitució de manera estructurada i definir un camí de migració realista, parli amb nosaltres:

En l’àmbit tècnic també tenen un paper important la substitució de Borland Database Engine i Delphi Modernització quan integracions, fluxos de dades i evolució han de funcionar de manera coordinada.

Parli del projecte o de l’inici de modernització amb Net-Base.

Pas següent

Quan un tema esdevé un projecte real, l'arquitectura, l'entorn existent i les operacions s'haurien de considerar conjuntament des de bon començament.

No només donem suport en qüestions puntuals, sinó també quan, a partir de fragments de codi font, temes de sistemes heredats o idees de portal, ha de sorgir un projecte empresarial sòlid.

  • L'estat actual, la visió objectiu i els riscos tècnics s'avaluen conjuntament.
  • REST, l'accés a les dades, els portals i el desplegament no es releguen a fases posteriors.
  • Vostè veurà aviat quin camí és econòmicament i operativament viable.

Comparteix la publicació

Comparteix aquesta publicació directament

LinkedIn, X, XING, Facebook, WhatsApp i E-Mail estan disponibles de forma immediata. Per a Instagram preparem directament l’enllaç i un text breu.

Correu electrònic

Instagram s'obre en una pestanya nova. L'enllaç i el text curt es copien prèviament al porta-retalls.