Net-Base Magasin

29.05.2026

BDE-utskifting: Slik moderniserer du Delphi-applikasjoner uten data- og driftsrisiko

Mange Delphi-applikasjoner bruker fortsatt Borland Database Engine (BDE) – og betaler for det med driftsutfordringer, driverproblemer, sikkerhetsrisikoer og blokkerte plattformoppdateringer. Denne artikkelen viser hvordan en BDE-utskifting kan planlegges teknisk forsvarlig: datamigrering

29.05.2026

Fra magasinetema til prosjektpraksis

Egnede tjeneste- og tekniske sider for innlegget

En BDE-utskifting står i mange bedrifter ikke på ønskelisten – men etter hvert på risikokartet. Borland Database Engine (BDE) er en historisk datatilgangsstack for Delphi-applikasjoner, som i modne miljøer ofte fortsatt betjener Paradox-tabeller eller eldre databasekoblinger. Så lenge alt „på en måte fungerer“, virker temaet håndterbart. I praksis er det som regel drift, oppdateringer og grensesnitt som først svikter: 64-bit-overganger, nye Windows-versjoner, moderne databaser, sikkerhetskrav, terminalserver/VDI eller enkelt og greit ønsket om stabil, etterprøvbar administrasjon.

Denne artikkelen vurderer hva som realistisk får en BDE-basert applikasjon til å feile i dag, hvordan du planlegger utskiftingen slik at data, grensesnitt og prosesser fortsetter å fungere rent, og hvilke migrasjonsløp som har vist seg i praksis. Fokus er ikke „kode-kosmetikk“, men driftssikkerhet, datakvalitet, vedlikeholdbarhet og muligheten til å modernisere applikasjonen trinnvis – uten unødvendig Big-Bang.

Hvorfor BDE blir et problem i drift

BDE er ikke bare „gammel“, men passer ikke lenger til dagens IT-standarder på flere områder. Det viser seg sjelden i en enkelt stor kollaps, men i mange små friksjonspunkter som koster IT-team tid og øker risikoen.

Tekniske og organisatoriske symptomer

  • Ustabile eller vanskelig vedlikeholdbare klientinstallasjoner: BDE-konfigurasjon, aliashåndtering, stier, skrivetillatelser og avhengigheter er ofte ikke enkelt å pakke. I terminalserver- eller VDI-oppsett eskalerer disse problemene raskt.
  • Driver- og kompatibilitetsgrenser: Moderne databaser og sikkerhetskonfigurasjoner (f.eks. TLS-standarder, autentiseringsmekanismer) kan ikke lenger avbildes robust via BDE-tilkobling.
  • 32-/64-bit-konflikter: Mange virksomheter ønsker av gode grunner 64-bit-klienter, nye Office-versjoner, moderne utskrifts-/PDF-stacks eller ARM64-enheter. BDE blir da en flaskehals.
  • Sikkerhet og hardening: Gamle datastier, lokale filer, uklare rettighetskrav, manglende krypterings- eller revisjonsevner passer dårlig med dagens sikkerhets- og compliance-forventninger.
  • Manglende fremtidssikring av grensesnitt: Når API-er (REST), sentral identitet (f.eks. SAML 2.0 som standard for Single Sign-on) eller servicebasert integrasjon kreves, fungerer en BDE-kjerne som et anker på legacy-klienten.

Avgjørende: En BDE-utskifting er sjelden „bare“ en utskiftning av et bibliotek. Den berører datamodeller, transaksjoner, locking (låsingsatferd), samtidighet, feilbehandling, utrullinger og ofte også rettighetsmodellen.

Vurdere BDE-utskifting realistisk: Hva blir egentlig erstattet?

I eksisterende applikasjoner er „BDE“ som regel et samlebegrep. For en solid plan må det være klart hvilke roller BDE fyller i det konkrete systemet:

  • Dataaksesslag: Datasets, queries, kall til stored procedures, cursor-adferd, parameterbinding.
  • Driver-/tilkoblingslag: Tilkobling til Paradox, dBASE, InterBase/Firebird eller også SQL Server/Oracle via eldre driverstier.
  • Konfigurasjon: BDE-Administrator, Aliases, NetDir, lokale Pfade, gemeinsame Verzeichnisse.
  • Semantikk: Hvordan blir det låst? Hvordan tolkes dato-/tallformater? Hvilke felttyper og indekser har historisk blitt brukt?

For IT-ledelse og administrasjon er denne avklaringen forskjellen mellom «liten oppdatering» og et strukturert moderniseringsprosjekt. Først deretter lar det seg avgjøre om en ren modernisering av dataadgangen er tilstrekkelig, eller om samtidig databasemigrasjon eller arkitekturhygiene er fornuftig.

Målarkitekturer etter der BDE: typiske veier

Det finnes ikke én erstatning. I praksis har tre veier etablert seg, som også kan kombineres:

1) Direkte overgang til FireDAC med eksisterende database

BDE-Ablosung mit nativer Anbindung er et moderne datatilgangsbibliotek for Delphi, som støtter ulike databaser og drivere og i hverdagen er betydelig enklere å automatisere enn BDE-konfigurasjoner. Denne veien egner seg når selve databasen er robust og den primære risikoen ligger i det gamle tilgangslaget. Det er viktig å teste tilkoblingsparametre, transaksjoner og typeavbildninger (f.eks. String/Unicode, dato/tid) grundig.

2) Migrasjon fra Paradox/filbasert til klient-server (PostgreSQL, SQL Server, MariaDB)

Hvis Paradox-tabeller eller andre filbaserte strukturer fortsatt benyttes, er BDE-Ablösung ofte riktig tidspunkt for overgangen til en sentral database. Klient-server betyr her: transaksjoner sikres serverside, backups kan styres sentralt, rettigheter defineres på DB-nivå, og samtidige aksesser kan håndteres mer kontrollert. For drift og sikkerhet er dette vanligvis det mest effektive tiltaket.

3) Entkopplung über Services: REST-API vor die Bestandslogik

I stedet for å bygge om klienten helt med én gang, kan en REST-tjeneste (REST står for „Representational State Transfer“, en utbredt stil for HTTP-baserte grensesnitt) fungere som et integrasjonslag. På den måten kan portaler, eksterne systemer eller nye moduler kobles til uten at hver tilgang kommer direkte fra legacy-klienten. Denne tilnærmingen er særlig nyttig når applikasjonen skal vokse trinnvis mot en modulær arkitektur.

Forarbeid som avgjør suksess eller stillstand

En BDE-Ablösung mislykkes sjelden på grunn av tekniske begrensninger, men ofte på grunn av manglende transparens i data og prosesser. Følgende forarbeid reduserer prosjekt- og driftsrisiko merkbart.

Bestandsaufnahme: Daten, Funktionen, Betrieb

  • Datainventar: Hvilke tabeller, filer, indekser, referanser og spesialfelter finnes? Hvor store er datamengdene, hvor raskt vokser de, og hvor ligger de i dag?
  • Transaksjonsgrenser: Hvor forventer fagprosessen «alt eller ingenting»? Hvor har man til nå akseptert delvise oppdateringer?
  • Batch- og bakgrunnsprosesser: Import/Export, reporting, PDF-utskrifter, nattkjøringer, grensesnittsjobber. Disse delene er ved migrasjoner ofte de egentlige feilkildene.
  • Driftsbilde: Hvordan deployes det (MSI, Copy-Deploy, programvaredistribusjon)? Hvilke rettigheter kreves på klientene? Hvilke logger finnes? Hvordan utføres support?

For denne fasen lønner det seg å bevisst involvere administrasjonskunnskap: „Hva skjer ved et klientbytte?“, „Hvordan reagerer vi på korrupte data?“, „Hvor lang tid tar en gjenoppretting?“ – det er spørsmålene som senere avgjør utrullingen.

Gjør datakvalitet og implisitte regler synlige

Særlig ved Paradox- eller historisk oppståtte datamodeller er mange regler implisitte: verdiområder, spesialkoder, „tomme“ felter som betydningsbærere, eller referanser uten reelle fremmednøkler. Ved en migrasjon til PostgreSQL/SQL Server/MariaDB må det avklares hvilke regler som i fremtiden skal håndheves teknisk (Constraints) og hvilke som i første omgang bare skal valideres (f.eks. via kontrolljobber). Dette er ingen akademisk detalj: For stramme regler kan blokkere en produktiv import, for løse regler bevarer feil på lang sikt.

Tekniske kjernepunkter ved BDE-utskifting

For beslutningstakere fremstår ofte „bytte ut datatilgang“ som rett fram. I praksis finnes det flere tekniske justeringspunkter som påvirker drift, stabilitet og supportinnsats direkte.

Datatyper, Unicode og sortering

Mange legacy-applikasjoner bærer med seg RESTbelastninger fra ANSI-tiden. Ved modernisering må tegnsett, sorteringsrekkefølge (Collation), store/små bokstaver og spesialtegn (umlauter, ß) være entydig definert. Ellers oppstår «spøkelsesfeil»: søk gir andre treff, duplikater oppstår, og eksportene avviker. En Unicode-migrasjon er derfor ofte en del av utskiftingen – ikke nødvendigvis som et Big Bang, men som en bevisst planlagt etappe.

Transaksjoner og låseadferd (Locking)

Filbasert datalagring oppfører seg annerledes enn klient-server. I SQL-databaser bestemmer isolasjonsnivåer, Row Locks og Deadlock-Handling samtidigheten. For drift betyr det: man må vite hvilke operasjoner som kjører lenge, hvilke tabeller som er «hotspots», og hvor man bør bruke passende indekser, kortere transaksjoner eller optimaliserte spørringer. Her lønner det seg med ordentlig overvåking, i stedet for bare „det føles tregt“.

Feilbilder: fra klientdialog til kontrollert logging

Mange eldre applikasjoner rapporterer databasefeil direkte via dialoger eller skriver lite nyttige meldinger. Etter BDE-utskiftingen bør feil være sentralt ettersporbare: hvilken query, hvilken bruker, hvilken handling, hvilken databasemelding? For administrasjon er det avgjørende at feil kan avgrenses reproduserbart, uten å måtte „fikle“ med enkelte klienter. I tjenestebaserte deler kommer strukturerte logger (f.eks. JSON) og korrelasjons-IDer til, for å spore forespørsler over flere komponenter.

Distribusjon og konfigurasjon: bort fra villvoksende aliaser

Et vanlig mål er å standardisere konfigurasjonen: tilkoblingsinnstillinger ikke lenger per klient i BDE-administratoren, men sentralt eller i det minste standardisert via konfigurasjonsfiler/Registry-oppføringer som settes gjennom programvaredistribusjon. For terminalservere er dette spesielt viktig. Også sertifikater, TLS-parametre og proxy-temaer bør ikke vedlikeholdes „for hånd“.

Migrasjonsstrategi: trinnvis i stedet for Big Bang

En utskifting kan gjennomføres i etapper. Det reduserer nedetidsrisiko og tillater tidlige forbedringer i driften, mens applikasjonen fortsatt er i bruk.

Etappe 1: Stabil datatilgang som et utskiftbart lag

I mange Delphi-applikasjoner er datatilgang fordelt på tvers av UI. Et praktisk mellomsteg er et klart avgrenset lag for datatilgang (ofte kalt „Layer“; i en Layer-3-arkitektur skilles UI, forretningslogikk og datatilgang). Målet er ikke akademisk renhet, men vedlikeholdbarhet: Når alle DB-tilganger samles på få steder, kan drivere, parametre og transaksjonshåndtering endres konsekvent.

Etappe 2: Parallelkjøring og sammenligningstester

Spesielt ved datamigrasjoner er parallelkjøring svært verdifull: Et definert datasett overføres til den nye databasen, sentrale use-cases testes mot begge systemer, og avvik analyseres systematisk. Viktig er å ikke redusere tester til bare „å åpne masken“, men også inkludere tilleggsprosesser: import/eksport, rapportering, batchbehandling, utskrift/PDF, autorisasjonstester.

Etappe 3: Cutover med tilbakefallsstrategi

Omskiftingspunktet (Cutover) bør planlegges praktisk med tanke på drift: vedlikeholdsvinduer, datafreeze, definerte sjekklister, overvåking og et klart „rollback“-scenario. Rollback betyr ikke at man kan veksle frem og tilbake vilkårlig, men at man i tilfelle problemer kommer tilbake til en ordnet arbeidsklar tilstand. Dette inkluderer backups, gjenopprettingstester og en plan for hvordan man sikrer datakonsistens etter et tilbakeslag.

Database-migrasjon i detalj: hva IT og drift bør være oppmerksomme på

Når man i forbindelse med BDE-avløsning migrerer fra Paradox eller andre filbaserte strukturer til en sentral SQL-database, står IT-team overfor flere beslutninger som senere vil påvirke driftskostnader og support.

Skjema-design: 1:1 overta eller målrettet forbedre?

En 1:1-overtakelse reduserer kortsiktig risiko, men bevarer ofte svakheter: manglende primærnøkler, uensartede datatyper, „semantikk i strenger“, historisk betingede feltlengder. En realistisk tilnærming er todelt: først migrere stabilt (minimale endringer), deretter konsolidere i kontrollerte steg. Det krever versjonering av skjemaet (migrasjoner), slik at endringer kan rulles ut på sporbar måte.

Ytelse: Indekser og typiske spørringer tidlig sjekke

Paradox- og BDE-typiske tilgangsmønstre passer sjelden 1:1 til SQL. Avgjørende er å tidlig måle topp use-cases: søkeskjemaer, lister, bokføringer, batchkjøringer. Derav følger indekser, spørringsoptimaliseringer og eventuelt materialiseringer. For administrasjon er det relevant at ytelse ikke oppstår „tilfeldig“, men gjennom måledata og etterprøvbare tiltak.

Backup/RESTore og høy tilgjengelighet

Med en sentral database endres spillereglene: backups må være konsistente, jevnlig kontrolleres og raskt gjenopprettbare. Gjenopprettingstester er ikke en luksus, men grunnlaget for robuste RTO/RPO-mål (RTO = tid til gjenoppretting, RPO = maksimalt datatap i tid). Avhengig av kritikalitet kommer replikasjon, standby-instanser eller klart avgrensede vedlikeholdsvinduer i tillegg. En BDE-avløsning er et godt tidspunkt for endelig å definere disse driftskravene tydelig.

Grensesnitt og integrasjon: den ofte undervurderte delen

Mange eksisterende applikasjoner lever ikke isolert. De mater et DMS, er tilknyttet ERP, leverer data til BI/rapportering eller kommuniserer med maskiner/verktøy. Ved BDE-avløsning endres grensesnitt sjelden faglig, men teknisk.

Import/Export stabilisere

Typiske feilkilder er faste stier, lokale disker, Excel-formater, CSV-encoding og manglende validering. Ved en modernisering lønner det seg å behandle import/eksport som en definert, testbar funksjon: klar formatdefinisjon, protokollføring, feiloversikter, gjenstart. Det reduserer supporttilfeller betydelig, fordi feil ikke lenger glir ubemerket igjennom.

REST-APIs als Integrationsanker

Når nye systemer skal kobles på, er en REST-API ofte den pragmatiske veien. Viktig er ikke bare endepunktene, men også driftsaspekter: autentisering (f.eks. token), rate limits, logging, versjonering av API-en og et konsept for breaking changes. En API som rulles ut uten versjonering skaper senere unødvendige avhengigheter.

Sicherheit und Berechtigungen nach der Ablösung

Med slutten på BDE oppstår muligheten til å gjøre rettigheter mer konsistente. Ofte er rettigheter i legacy-systemer delvis implementert i applikasjonen, delvis «via filstier». Moderne målbilder skiller klart:

  • Autentisering: Hvem er brukeren? (f.eks. Windows/AD, SSO via SAML 2.0)
  • Autorisering: Hva har brukeren tilgang til i applikasjonen? (roller, rettigheter, tenanter)
  • Database-tilganger: Applikasjonstilgang skjer via tekniske databasebrukere, ikke via sluttbrukerkontoer; sensitive admin-operasjoner er atskilt.
  • Revisjon og sporbarhet: Viktige endringer bør kunne protokollføres (hvem, hva, når), uten at alle detaljer forsvinner i loggfiler.

For IT-ledelse er relevant: sikkerhet oppnås ikke gjennom «flere dialoger», men gjennom klare ansvarsforhold og etterprøvbare regler. Nettopp dette blir ofte mulig for første gang gjennom en strukturert BDE-utfasing.

Test- und Rollout-Plan: was in der Praxis wirklich zählt

Ved moderniseringer er testbarhet et driftskriterium. Jo mindre reproducerbart, desto høyere supportinnsats. En pragmatisk utrullingsplan kombinerer tekniske og organisatoriske tiltak.

Testarten, die Sie einplanen sollten

  • Regresjonstester av kjerneprosesser: bokføringer, stamdata, søk, rapporter, utskrift/PDF.
  • Datavalidering: stikkprøver og automatiserte kontroller (antall, summer, referanser, duplikater).
  • Belastnings-/ytelsestester: ikke som ‚benchmark‘, men langs reelle spissetider og batchkjøringer.
  • Driftstester: installasjon, oppdatering, rollback, loggrotasjon, backup/restore, overvåkingshendelser.

Pilotierung und gestaffelter Rollout

En pilot med klart avgrensede brukergrupper og definerte supportkanaler reduserer risiko. Viktig er å ta imot tilbakemeldinger strukturert: Hvilke feil er reelle defekter, hvilke skyldes endret oppførsel på grunn av sortering/Unicode, hvilke er prosessspørsmål? En ryddig ticket- og prioriteringsprosess forhindrer at prosjektet setter seg fast i «alt er like viktig»-modus.

Wann lohnt sich die BDE-Ablösung besonders – und wann braucht es mehr?

Det finnes klare utløsere hvor nøling blir dyrere enn handling:

  • Planlagt 64-bit-omlegging eller nye Windows-generasjoner i klientdrift
  • Hyppige supportsaker på grunn av klientoppsett, stier, rettigheter eller terminalserver-miljøer
  • Behov for sentral datalagring, pålitelig backup/restore og etterprøvbare revisjoner
  • Nye krav til grensesnitt (portaler, BI, eksterne partnere) og sikkerhet

Noen ganger er BDE-erstatning imidlertid bare det første trinnet: Hvis UI/UX, prosesslogikk eller tilgangsmodell samtidig må fornyes grunnleggende, bør tiltaket planlegges modulært. «Alt på en gang» kan virke effektivt, men fører i mange virksomheter til lange frysefaser og mellomtilstander som er vanskelige å teste. Bedre er en veikart som gjør driftsfordeler synlige tidlig: stabil datatilgang, sentral database, bedre logger, og deretter gradvis videre modernisering (f.eks. portaler eller tjenester).

Konklusjon: BDE-erstatning som en kontrollert moderniseringsvei

En BDE-erstatning er mer enn et teknisk refaktorering. Riktig planlagt er den et kontrollert skritt mot mer driftbar forretningsprogramvare: standardiserte utrullinger, etterprøvbar datalagring, klarere grensesnitt, bedre sikkerhets- og revisjonsmuligheter og mulighet til å koble på moderne arkitekturkomponenter som REST-tjenester eller portaler. Nøkkelen ligger i en solid beholdningskartlegging, en trinnvis migrasjonsstrategi og en utrulling som tar drift og datakvalitet like seriøst som funksjonalitet.

Hvis du vil vurdere erstatningen strukturert og fastsette en realistisk migrasjonsvei, ta kontakt med oss:

I faglige sammenhenger spiller også erstatning av Borland Database Engine og Delphi modernisering en viktig rolle når integrasjoner, dataflyter og videreutvikling må fungere sømløst.

Drøft prosjekt eller moderniseringsinitiativ med Net-Base.

Neste steg

Når et tema blir et reelt prosjekt, bør arkitektur, eksisterende systemer og drift tidlig vurderes samlet.

Vi bistår ikke bare med enkeltspørsmål, men også når kodesnutter, legacy-temaer eller portalideer skal utvikles til et robust virksomhetsprosjekt.

  • Eksisterende tilstand, målbildet og tekniske risikoer vurderes samlet.
  • REST, datatilgang, portaler og utrulling blir ikke utsatt som sene følger.
  • Dere ser tidlig hvilken vei som er økonomisk og driftsmessig levedyktig.

Del innlegg

Del dette innlegget direkte

LinkedIn, X, XING, Facebook, WhatsApp og e‑post er umiddelbart tilgjengelig. For Instagram forbereder vi lenke og kort tekst umiddelbart.

E-post

Instagram åpnes i en ny fane. Lenken og kortteksten kopieres først til utklippstavlen.