DBEs

Aus Wiki des Deutschsprachige Xbaseentwickler e. V.
Zur Navigation springen Zur Suche springen

Vom RDD zur DBE

Mit Clipper 5.x kam ein neues Konzept auf, um auf Daten zuzugreifen: RDD (Replaceable Database Driver). Und auf einmal konnte man neben den Standard-Formaten DBF und NTX auch FoxPro-Formate nutzen. Der bekannteste, alternative RDD was der SixDriver.

Seitens Alaska Software wurde die RDD Architektur als zu "monolithisch" angesehen und durch DBEs ersetzt.

DBE steht für DataBase Engine. Eine DBE kann verschiedene Funktionen haben, wie z.B.

  • Data-Komponente
  • Order-Komponente


Data Components

beschreiben die Art und Weise, wie Daten gespeichert werden.

DBFDBE

ist die Data-Komponente, welche die klassische DBF-Struktur abbildet. Memo-Felder werden in DBT-Dateien abgelegt und sich auf reine CHAR-Werte beschränkt.

FOXDBE

erlaubt den Zugriff auf FoxPro-spezifische Erweiterung, wie Memo-Felder, die mit binären Daten umgehen können.

SDFDBE

erlaubt den Zugriff auf Standard Delimited Format Dateien, also z.B. Text-Dateien. Dass diese Dateien einen entsprechenden Aufbau besitzen müssen, versteht sich von selbst. Das erwartete Layout ist streng spaltenorientiert, es werden keine Trennzeichen erwartet oder verwendet.

DELDBE

erlaubt den Zugriff auf CSV-Dateien, als handele es sich um eine "normale" DBF-Datei.

Zu beiden DBEs ist anzumerken, dass einige Anweisungen bei diesen DBEs nicht unterstützt werden, sie dienen eher dazu, Datenimporte durchzuführen.


Order Components

NTXDBE

Diese DBE stellt alle Funktionalitäten zur Verfügung, die eine Clipper NTX-Datei auszeichnen. Um die Kompatibilität mit Clipper aufrecht zu erhalten, unterstütz die NTXDBE nur den OEM Zeichensatz.

CDXDBE

erlaubt den Zugriff auf FoxPro spezifische Erweiterungen wie Tags. Die CDXDBE verwendet den ANSI Zeichensatz. Darüber hinaus wird eine Collation Table, die bei der Erstellung einer CDX-Datei angegeben wird, in der Index-Datei gespeichert. Diese Festlegung kann nach der Erstellung der Datei nicht mehr geändert werden.

Mehr über die Auswirkungen von SetCollation().

Compound DBE

Aus einer Data und einer Order Component wird eine Compound DBE erzeugt. Hierzu dient beispielsweise die DbeSys.prg, die standardmässig eine Kombination aus DBFDBE und NTXDBE unter dem Namen DBFNTX bereitstellt.

Bei der Entscheidung, welche DBEs genutzt werden sollen, spielt es auch eine wichtige Rolle, ob Daten mit alten Clipper-Anwendungen gemeinsam genutzt werden sollen. Hierdurch kann es zu Einschränkungen in Bezug auf die auswählbaren DBEs kommen.

Es ist möglich, mehrere Compound DBEs zu erzeugen. Eine davon sollte als Standard dienen, und man kann als Programmierer beim Öffnen einer Datei festlegen, ob die Standard-DBE verwendet wird, oder ob man eine andere DBE verwenden will.