Die BDE muss weg, die BDE muss weg…

… ja, so ähnlich ist Momentan ein Status bei einem größeren Softwareprojekt. Das Projekt wurde vor Jahren gestartet, auf der BDE aufgebaut, bis ins Jahr 2009 mit Delphi 5 kompiliert. Doch nun ist die Zeit gekommen, alles zu ändern.

Die Ausgangssituation: Das Projekt benutzt die BDE mit 46 Tabellen, als Datenanzeige im Programm kommt eine Komponente mit dem Namen “TDBScroll” (etwa ein leicht verbessertes TDBGrid) zum Einsatz. Die Komponente lässt sich nicht mal mehr per Google finden… Desweiteren haben die damals aktuellen WPTools 4 (Reporting-Tool, PDF Export) sowie die damals aktuellen TeeChart 5 ihren Existenzgrund im Programm. Der gelungene Abschluss macht die Komponente “TStringLoader” (ebenfalls per Google nicht auffindbar), die die Anwendung in mittlerweile fünf Sprachen lokalisiert (dazu benötigt man pro Form und pro Sprache eine eigene Ini-Datei. Das Programm hat 22 Forms, daher werden 110 Sprachdateien benötigt), darunter Deutsch, Englisch, Französisch, Spanisch und Italienisch.

Nun ist die Zeit gekommen, an dem das Projekt so nicht weiterlaufen kann. Die BDE macht Probleme unter Windows > Vista, die Sprachdateien zu editieren ist nur noch grausam und an kyrillische Sprachen wie Russisch ist gar nicht zu denken. Natürlich gibt es entsprechende Komponenten, um kyrillische Sprachen auch in Delphi 5 verfügbar zu machen, doch Delphi 5 ist mittlerweile auch stolze elf Jahre alt. Alles in allem muss das Programm renoviert werden. ;-) Genau das ist im Moment meine Aufgabe.

Hier eine kleine Übersicht, wie die alten verstaubten Komponenten gegen neue hochglänzende getauscht werden.

TDBScroll

Die datensensitive Anzeigekomponente wird mit dem QuantumGrid von DevExpress getauscht. Ich muss sagen, dass ich von der Qualität der DevExpress Komponenten sehr beeindruckt bin, das sind wahrlich Monsterkomponenten, die (fast) keinen Wunsch übrig lassen. Falls jemand auf der Suche nach einem Grid ist, schaut Euch das QuantumGrid an, es lohnt sich!

TQuery & Co.

Da ja die BDE in den Mülleimer geworfen wird, müssen auch neue Zugriffskomponenten her. Hier fiel die Wahl auf die AnyDAC von RemObjects. Klasse Dinger und bei Fragen ist der Support, der eigentlich (fast) nur aus dem Programmierer der AnyDAC, Dmitry Arefiev, besteht, wirklich schnell, kompetent und freundlich, so soll es sein.

WPTools 4 & TeeChart 5

Hier wird ganz unspektakulär gegen jeweils die neuste Version der Komponenten getauscht: WPTools 6 und TeeCharts 8

TStringLoader

Auch wenn der RTTI Ansatz dieser Komponente gar nicht mal so schlecht ist, ist es dennoch furchtbar, dass man pro Sprache und Form jeweils eine Sprach-Ini hat, muss weg. Was hier als Ersatz zum Einsatz kommt, ist noch nicht ganz klar. Im Moment wird es entweder GNU GetText for Delphi oder ein eigenes kleines auf FireBird gestütztes System.

BDE

Das ist wohl das größte Sorgenkind der ganzen Anwendung: Die BDE. Damals wohl noch ganz nett und es war schon bei Delphi dabei, muss es nun Platz machen, gegen gescheite Desktop-Datenbanken. Hier fiel die Wahl eigentlich direkt auf FireBird (als embedded-Variante). Nach vielen vielen Tools, die ich ausprobiert habe, um die Daten von der BDE in eine FireBird-DB zu bekommen, half letztendlich das Tool IBDataPump von CleverComponents. Das Programm gibt es kostenlos zum Download und war das einzige Programm, dass die Struktur und die Daten problemlos in FireBird überführte.

Innerhalb des Quelltextes mussten auch einige Änderungen gemacht werden. Gerne hatte man solche netten doppelten Anführungszeichen im Quelltext, die FB-DB bricht bei solchen Konstrukten mit der Fehlermeldung “Column unknown” ab.

Query.SQL.Add('WHERE Feldname = "Text"');

Mein Vorgänger kannte wohl noch kein

Query.SQL.Add('WHERE Feldname = :feld');
Query.ParamByName('feld').AsString := 'Text';

Tja, da auf Grund der Quelltextgegebenheit ich viele Queries neu schreiben müsste, behelfe ich mir mit dem Workaround, dass ich die doppelten Anführungszeichen gegen zwei einfache tausche. Natürlich ist das noch nicht sauber und dient wirklich nur als Workaround, aber behindert im Moment die Umstellung des Programms nicht. Sobald dort das meiste durch ist, statte ich den Queries einen Besuch ab.

Weitere kleine Änderungen betreffen nur das QuantumGrid, aber diese sind kaum relevant und betreffen fast nur das Aussehen.

Delphi 5

Richtig, auch das Delphi 5, das einige gerne als das beste Delphi aller Zeiten ansehen, muss getauscht werden, gegen ein Delphi 2009. Der Tausch ist nötig, da Delphi 2009 nativ Unicode unterstützt, da spart man sich das Tauschen der normalen Buttons gegen welche, die Unicode unterstützen. Auch empfinde ich den Code-Editor angenehmer, als der von Delphi 5, aber das ist reine Geschmackssache. Manche brauchen diesen Schnickschack, andere nicht, ich gehöre allerdings zu ersteren. ;-)

InstallShield Express (Borland Edition)

Wenn man schon so viel umstellt, dann kann man auch gleich einen neuen Installer benutzen. Das Programm benutzt im Moment noch den InstallShield Express (Borland Edition), das automatisch die BDE mitinstallierte. Da diese nun weg ist, kann ein neues Installer her, der auch ein multilinguales Setup anbietet. Hier fiel die Entscheidung auf InstallAware. Vorher zwei Setups (eins in Deutsch, eins in Englisch) mit jeweils 30MB ist es nun nur noch ein Setup für beide Sprachen mit 22MB.

Soviel erst mal dazu, musste das ganze einfach mal bloggen (gab ja schon wieder längere Zeit nichts mehr ;-) )

Sociallinks:
  • Add to favorites
  • Print
  • PDF
  • email
  • RSS
  • Twitter
  • Google Bookmarks
  • Live
  • Yahoo! Bookmarks
  • del.icio.us
  • Digg
  • Facebook
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • Mixx
  • MySpace
  • SphereIt
  • Sphinn
  • Technorati
  • Blogosphere News
Dieser Beitrag wurde unter Computer, Programmierung abgelegt und mit , , , , , , , , , , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Antworten auf Die BDE muss weg, die BDE muss weg…

  1. Xooyoo sagt:

    Göttlich bis perfekt, das werde ich morgen ausdrucken und Abheften, und wenn mir Jemand auf den Geist geht, dann verschicke ich’s per Mail. :D

  2. Manu sagt:

    Wie soll ich das nun verstehen? :D

  3. Pingback: Die BDE ist weg, die BDE ist weg… | Manus Blog

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>