Net-Base Magasin

09.04.2026

Erstatte Borland BDE-databasekobling med native drivere

Mange eldre Delphi-applikasjoner er fortsatt avhengige av BDE. En native erstatning forbedrer stabilitet, utrulling og fremtidssikring betydelig.

09.04.2026

Fra magasinetema til prosjektpraksis

Egnede tjeneste- og tekniske sider for innlegget

Video-Botschaft

Erstatte Borland BDE-databasekobling med native drivere

Warum die BDE heute im Betrieb zum Risiko wird und was „native Treiber“ praktisch lösen: weniger fragile Systemkonfiguration, besseres Deployment und kontrollierbare Transaktionen – ohne Big-Bang-Erneuerung.

Video mit KI erstellt

Transkript anzeigen

Hallo, ich bin Mark. Viele BDE-Probleme sind keine Bugs, sondern Betriebsrisiken.

Der Titel heute: „Borland BDE Datenbankanbindung durch native Treiber ersetzen“. Die BDE ist abgekündigt und hängt oft an globaler Maschinen-Konfiguration.

Das passt schlecht zu heutigen Rollouts, Terminalservern und restriktiven Rechten. Und: Sie bindet Sie häufig an 32-Bit, was 64-Bit-Strategien unnötig blockiert.

Native Treiber heißt: Die Anwendung spricht die Datenbank über aktuelle, unterstützte Treiber an, ohne BDE-Zwischenschicht. Damit werden Deployment und Konfiguration reproduzierbar.

Und Transaktionen, also klare Commit- und Rollback-Grenzen, lassen sich sauber kontrollieren. Wichtig: Das ist selten nur „Komponente tauschen“.

SQL, Datentypen und Zeichensätze müssen geprüft werden. Wenn Sie dazu Fragen haben, klären wir das gern im Kontext Ihrer Anwendung.

I mange virksomheter kjører Delphi-applikasjoner som faglig er optimalisert over år og i dag bærer en vesentlig del av verdiskapningen. Teknisk bygger imidlertid datatilgangen ofte på Borland Database Engine (BDE) – ofte et historisk restprodukt, lenge «godt nok» stabil, men i moderne driftsmiljøer stadig mer problematisk. BDE er avviklet, driver- og konfigurasjonslogikken stammer fra en tid før dagens krav til sikkerhet og deployment, og koblingen til 32-bit gamle komponenter blir mer merkbar for hver plattformbeslutning.

BDE-utfasing er derfor ikke et kosmetisk tiltak, men et sentralt moderniseringstiltak: bort fra global alias-konfigurasjon og legacy-drivere mot native databasedrivere og en tydelig, testbar datatilgang. For bedriftene betyr det: mindre driftsrisiko, reproduserbar deployment, bedre skalerbarhet og et pålitelig grunnlag for videre steg som REST-servere, Windows- eller Linux-tjenester, rapporterings-workflows og multiplattformkunder.

Viktig: Overgangen er sjelden «bare bytte komponenter». Den som virkelig erstatter BDE må etterligne SQL-oppførsel, datatyper, tegnsett, transaksjoner, låsemekanismer og feilhåndtering så presist som mulig – og samtidig benytte anledningen til å strukturelt løsrive datatilgangen. Her oppstår det faglige og økonomiske gevinster: Applikasjonen blir ikke bare «igjen kjørbar», men vedlikeholdbar og framtidsrettet.

Hvorfor BDE i dag blir en risiko

Distribusjon og konfigurasjon: globalt, skjørt, vanskelig å automatisere

BDE fungerer typisk med system- eller maskinkonfigurasjon (BDE-administrator, aliases, sentrale parametre). I dagens miljøer med standardiserte utrullinger, terminalservere, VDI, restriktive rettigheter og automatiserte installasjonskjeder er dette en kontinuerlig kilde til unntakstilfeller:

  • Avhengighet av globale aliases i stedet for applikasjonsnær konfigurasjon (f.eks. per instans, per kunde).
  • Konflikter ved parallelle installasjoner av ulike applikasjoner/versjoner på samme system.
  • Manglende eller vanskelig automatisering i CI/CD og drift (f.eks. reproduserbare oppsett).

Plattform- og fremtidstemaer: 64-bit, ARM64, moderne driver-økosystemer

Mange BDE-scenarier binder applikasjoner til 32-bit og et foreldet driver-økosystem. Selv om en applikasjon «fremdeles kjører», krymper handlingsrommet: 64-bit er standard i bedriftsmiljøer, og med Windows 11 på ARM64 øker betydningen av native avhengigheter ytterligere. Moderniseringstiltak som en ryddig 64-bit-migrasjon eller forberedelse for ARM64 feiler i praksis ofte ikke på Delphi selv, men på utdaterte driverkjeder og installasjonslogikk.

Transaksjoner, lås og flerbrukerbelastning: «fungerer» vs. «beherskes»

Mange modne applikasjoner med BDE bruker en blanding av implisitte transaksjoner, auto-commit-adferd og historisk begrunnede antakelser om låsing. Det kan være umerkelig i små brukergrupper, men under belastning viser det typiske symptomer:

  • Uklare commit/rollback-grenser, særlig i flerstegsprosedyrer.
  • Deadlocks eller lange ventetider på lås fordi låsstrategiene ikke passer målplattformen.
  • Feilhåndtering som ikke oversetter tekniske exceptions til faglige tilstander på en konsistent måte.

Native drivere og moderne datatilgangslag (f.eks. ved BDE-utfasing med native tilkobling) gir langt bedre kontroll her: isolerte transaksjonsområder, definerte isolation levels, konsistent feilanalyse og klarere ytelsesparametre.

Hva som menes med «native drivere» i Delphi konkret

„Native drivere“ betyr i bedriftskontexten: Applikasjonen kommuniserer med måldatabasen gjennom en moderne, støttet driverstack uten mellomlag som BDE og uten global-konfigurasjonsavhengige legacy-komponenter. I Delphi er BDE-Ablosung mit nativer Anbindung typisk teknisk standard fordi det kan adressere ulike databaser enhetlig og benytter velprøvde drivere (avhengig av DB: ODBC/OLE DB/Client-Libs, men kontrollert og moderne integrert).

Målbildet er ikke bare «BDE ut, FireDAC inn», men:

  • Et definert datatilgangslag (layer) som kapsler tilkobling, transaksjoner og feilkategorier.
  • Konfigurasjon via applikasjonsnære innstillinger (fil, Secret Store, miljøvariabler), ikke via maskintilstand.
  • Ryddig separasjon mellom UI, faglogikk og datatilgang (ofte realisert som Layer-3-arkitektur).

Typiske utgangspunkter: Hvilke BDE-scenarier vi ser i praksis

Paradox/dBASE i filsystemet

Mange gamle applikasjoner bruker Paradox-tabeller direkte i et filshare. Det medfører, utover ytelses- og låseproblematikk, særlig driftsrisiko (nettverksavbrudd, filkorruptjon, backup/restore-kompleksitet). En ren «driverutskifting» er ofte ikke nok: Man trenger typisk en migrasjon til et server-RDBMS (f.eks. MariaDB, PostgreSQL, SQL Server) og dermed et nytt driftsmønster (brukere, roller, backup, overvåking).

BDE mot InterBase/Firebird/Oracle/SQL Server over gamle drivere

Her er databaseserveren ofte allerede «moderne nok», men tilgangen er gammel. I slike prosjekter kan overgangen til FireDAC ofte gjøres trinnvis, fordi datamodellen allerede er relasjonell. Hovedarbeidet ligger da i SQL-dialektforskjeller, parametre, datatyper og transaksjoner.

Blandet drift: BDE pluss tilleggsschnittstellen

I noen miljøer eksisterer det ved siden av BDE allerede andre tilgangsveier (ADO, ODBC, REST-tilkoblinger, import/eksport-komponenter). Dette øker risikoen for inkonsistenser: ulike antakelser om tegnsett, parallelle låsealgoritmer, doble forretningsregler. En BDE-utfasing er da også en anledning til å enhetliggjøre tilgangsveiene og gjeninnta de faglige reglene sentralt.

Tekniske snubletråder ved BDE-utfasing – og hvordan løse dem riktig

1) SQL- og dialektforskjeller

BDE-SQL og den faktiske SQL-implementasjonen i måldatabasen er ikke identiske. Vanlige temaer:

  • Dato-litteraler, strengkonkatenering, funksjoner (f.eks. UPPER/LOWER, COALESCE/NVL, SUBSTRING).
  • JOIN-syntaks og ytre joins (legacy-skrivemåter).
  • ORDER BY på beregnede kolonner, GROUP BY-regler, DISTINCT-oppførsel.

I en kontrollert modernisering blir ikke SQL «blind portert», men katalogisert: Hvilke spørringer er kritiske (ytelse, faglige kjerneprosesser), hvilke er sjeldne, hvilke kan kapsles i views/stored procedures, og hvor lønner det seg å refaktorere spørringslogikken?

2) Datatyper, null-semantikk og feltlengder

BDE har i mange gamle prosjekter etablert datatypantakelser som virker annerledes med native drivere. Typiske konflikter:

  • Boolean-felt: 0/1, T/F, Y/N, ekte BOOL-typer – inklusive indeksbruk.
  • Faste vs. variable strenger, trimming, padding og sammenligningsatferd.
  • NUMERIC/DECIMAL vs. FLOAT: avrunding, summering, sammenligningsfeil.
  • NULL vs. tom streng: faglig forskjell, valideringer, standardverdier.

En god BDE-utfasing inkluderer derfor alltid en liste over datatyper og konvensjoner. Målet er at faglogikk og rapporter ikke «tilfeldigvis» avhenger av implisitt adferd, men at reglene blir eksplisitte.

3) Tegnsett, Unicode og sortering (Collation)

Mange eldre Delphi/BDE-applikasjoner stammer fra ANSI-tiden. Med Unicode-Delphi og moderne DB-servere må det avklares:

  • Hvilken codepage/collation er aktiv i databasen?
  • Hvordan sorteres og sammenlignes umlauter og spesialtegn?
  • Hvilke felt er teknisk «tekst», hvilke er «koder»?

Hvis sortering og sammenligning ikke er avklart, oppstår vanskelig oppdagbare feil: duplikate trefflister, inkonsistente søk, «like» verdier som i UI opptrer annerledes enn i SQL. Native drivere hjelper bare hvis måladferden er definert og testet.

4) Transaksjonsgrenser og samtidighet

Under BDE ble transaksjoner ofte brukt implisitt eller «håndtert» av komponentadferd. Med FireDAC og native drivere må (og kan) man bli tydeligere:

  • Hvilke faglige operasjoner må være atomiske?
  • Hvilke isolation levels er hensiktsmessige (f.eks. Read Committed vs. Snapshot)?
  • Hvordan ryddes det opp ved feil på en rollback-sikker måte?

Særlig i flerbruker-fagsystemer er dette en fordel: Man reduserer datainkonsistenser og kan analysere låseproblemer reproducerbart.

5) BLOBs, memo-felt og dokument-workflows

Enten tilbud som PDF, e-poster, bilder eller logger: BLOB-felt er i gamle applikasjoner ofte sensitive. Ulike drivere kan håndtere BLOB-streaming, encoding eller lese-/skrivemodi forskjellig. En robust utfasing undersøker derfor:

  • Streaming vs. komplett lasting (minnebruk, ytelse).
  • Grenseverdier og timeouts ved store dokumenter.
  • Transaksjonstilknytting: Når blir et dokument faktisk «committed»?

Fremgangsmodell: BDE-utfasing uten Big-Bang

I virksomheter er «alt nytt» sjelden realistisk. Et iterativt forløp som prioriterer faglig stabilitet samtidig som arkitekturen forbedres, er fornuftig.

Trinn 1: Statuskartlegging med fokus på risiko og kjerneprosesser

Først følger en teknisk inventur:

  • Hvilke databaser, tabeller, aliases og BDE-konfigurasjoner finnes?
  • Hvilke komponenter (TTable/TQuery/TDatabase) brukes, hvor er SQL «embedded»?
  • Hvilke prosesser er forretningskritiske (fakturering, disponering, vedlikehold av stamdata)?
  • Hvilke ytelses- eller stabilitetsproblemer er kjent?

Resultatet er ikke en akademisk dokumentasjon, men en robust migrasjonsrekkefølge.

Trinn 2: Definere målarkitektur (datatilgang som eget modul)

For varig modernisering bør datatilgangen ikke lenger være spredt i forms og rapporter. Målet er klar kapsling, f.eks. som et datamodul-/service-lag med:

  • entydig connection-management,
  • sentral transaksjonsstyring,
  • ensartet feilsoversettelse (teknisk → faglig/diagnostisk),
  • testbarhet (unit-/integrationstester mot en definert DB-instans).

I mange Delphi-prosjekter er dette steget hvor «legacy-kode» igjen blir en vedlikeholdbar kodebase.

Trinn 3: Parallell drift (Strangler Pattern) i stedet for hard avskjæring

Praktisk erfaring viser at det lønner seg å migrere enkelte use-cases først: f.eks. lese stamdata, deretter skrive stamdata, så transaksjonskritiske prosesser. Et parti av applikasjonen kan da allerede kjøre via FireDAC, mens andre deler fortsatt bruker BDE. Avgørende er å aktivt styre denne overgangsfasen (ingen dobbeltlogikk, klare ansvarsområder, definerte akseptansetester).

Trinn 4: Databaseorientert modernisering der det gir faglig gevinst

Med native drivere blir databasen et mer aktivt systemelement. Det er ikke et mål i seg selv, men ofte hensiktsmessig:

  • Sjekke indekser og optimere dem mot reelle spørringer.
  • Legge til constraints og foreign keys for å sikre datakvalitet.
  • Bruke views eller stored procedures der stabilitet og vedlikeholdbarhet øker.

Trinn 5: Harde krav til drift og deployment

Den tekniske utfasing er først «ferdig» når drift og utrulling er håndterbart:

  • Konfigurasjonsstrategi (per miljø, per kunde) og sikker lagring av credentials.
  • Logging/tracing for DB-feil inkl. korrelasjons-IDer (viktig for support og revisjon).
  • Installer-/oppdateringsmekanikk uten manuelle BDE-etterarbeid.

FireDAC som typisk målstack: Hva virksomheter setter pris på

FireDAC er i Delphi-prosjekter ofte det pragmatiske valget fordi det gir et moderne datatilgangslag uten å tvinge applikasjonen inn i et fremmed økosystem. For B2B-fagsystemer er særlig følgende punkter relevante:

  • Ryddig connection-håndtering inkl. parametrisering, timeouts og feilprofiler.
  • Transaksjoner med klar styring og reproduserbar oppførsel.
  • Ytelsesverktøy (fetch-alternativer, batch-oppdateringer, prepared statements) som er merkbare ved store datamengder.
  • Fleksibilitet i valg av database (f.eks. MariaDB, PostgreSQL, SQL Server) uten å skrive hele applikasjonen på nytt.

Viktig: Også FireDAC er ikke en «tryllestav». Gevinsten oppstår gjennom ryddige konvensjoner, konsekvent refaktorering av datatilgangsveier og klare akseptansekriterier.

Mer enn drivere: Hvilke moderniseringsmuligheter som åpner seg etterpå

REST-servere og tjenester: Eksponere eksisterende forretningslogikk på en kontrollert måte

Med kontrollert datatilgang blir det betydelig enklere å tilby eksisterende faglogikk som REST-API eller kjøre bakgrunnsprosesser som tjenester. Mange virksomheter bruker BDE-utfasing som startpunkt for å:

  • bygge et internt API for andre systemer (ERP, DMS, CRM),
  • koble til et kundeportal eller partnerportal,
  • flytte import-/eksport-workflows og tidsstyrte oppgaver til tjenester.

Fellesnevneren er alltid den samme: Uten robust, native datatilgang blir enhver API-/tjenestelayer en risiko fordi tilkoblinger, transaksjoner og feilbilder ikke er godt styrbare.

Multiplattform og nye målsystemer (inkl. Windows 11 ARM64)

Virksomheter planlegger i økende grad heterogene klientlandskap: klassiske Windows-desktops, virtuelle miljøer, enkelte macOS-arbeidsplasser, og i økende grad ARM64-enheter. En BDE-bundet applikasjon er her strukturelt begrenset. Med native drivere og et moderne datatilgangslag øker sannsynligheten for at plattformvalg ikke feiler på grunn av datatilgangen.

Arkitekturdisiplin: Bort fra database-nær UI-logikk

BDE-applikasjoner er historisk ofte bygd tett mot databasen: UI-komponenter henger direkte på TTable/TQuery, forretningsregler er spredt, og datatilgang gjøres «ved siden av». Overgangen gir muligheten til å rydde opp:

  • Konsentrere faglogikk i tjenester/klasser,
  • Løsne UI,
  • skape validerbare use-cases,
  • håndtere feil og unntak konsistent.

Dette er ikke akademisk: Det reduserer supportarbeid og gjør endringer mer kalkulerbare.

Kvalitetssikring: Hvordan sikre at «samme resultat» faktisk er det samme

En BDE-utfasing feiler sjelden på tilkobling, men på faglige randtilfeller. Derfor trengs en QA-strategi som går utover «det ser riktig ut i UI»:

  • Golden-Master-tester for sentrale lister/rapporter (samme input → samme output).
  • Transaksjonstester for kritiske bokføringer/statusendringer (provosere feil, verifisere rollback).
  • Last- og samtidighetstester på reelle kritiske tabeller og indekser.
  • Migrasjonstester for tegnsett/collation, spesielt ved søk, sortering og duplikatlogikk.

For virksomheter er dette forskjellen mellom «teknisk migrert» og «driftsstabilt modernisert».

Kost-/nyttevurdering: Hva ROI for en BDE-utfasing hviler på

Innsatsen for en BDE-utfasing avhenger sterkt av utgangspunktet (Paradox vs. server-DB, andel SQL, arkitekturtilstand). Nytten kan likevel fanges i gjentakende mønstre:

  • Redusert driftsrisiko: færre avhengigheter, mindre manuelt konfigurasjonsarbeid, færre «merkelige» runtime-feil.
  • Raskere endringer: SQL- og datatilgangslogikk er sentralisert, testbar og sporbar.
  • Bedre skalerbarhet: målrettet ytelsesoptimalisering, kontrollerte transaksjoner, planbar låsehåndtering.
  • Forberedelse på neste steg: REST-servere, tjenester, portaltilkobling, 64-Bit/ARM64, multiplattform.

I B2B-fagsystemer er den viktigste effekten ofte ikke «noen prosent raskere», men en mer stabil, kalkulerbar drift og en tydelig lavere terskel for videre modernisering.

Konklusjon: Å erstatte BDE betyr å få datatilgangen under kontroll igjen

Borland BDE var historisk en praktisk bro mellom Delphi og databaser. I moderne bedriftsmiljøer er den imidlertid en flaskehals: teknisk avviklet, deployment-tung, vanskelig å automatisere og i mange tilfeller ikke forenlig med nåtidens plattformmål. En ryddig BDE-utfasing via native drivere – ofte gjennom FireDAC – er derfor et strategisk grep som går langt utover «å bytte bibliotek».

Den som organiserer migrasjonen som et kontrollert moderniseringsprosjekt, vinner ikke bare stabilitet og bedre transaksjonskontroll, men også en arkitektur som bærer REST-servere, tjenester og videre modernisering. Avgørende er en grundig statuskartlegging, klar målarkitektur, trinnvis migrasjon og en QA som kan bevise faglig likhet.

Hvis dere vil planlegge utfasing strukturert og uten unødvendig Big-Bang, er et fornuftig første steg en felles gjennomgang av nåsituasjonen og en robust migrasjons-roadmap: https://net-base-software-gmbh.de/kontakt/

Neste trinn

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

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 etterfølgende oppgaver.
  • 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 tilgjengelige. 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.