DataPower

DP wird als relationale Datenbanken mit einer DTP-ähnlichen Oberfläche beworben.

DP wurde von der Firma Ioata entwickelt und ca. 2001 an die Firma Logotron verkauft welche DP als Viewpoint für Windows/MacOS vermarktet.

Hauptentwickler von DataPower war Neil Raine. Er verunglückte tödlich am 15. März 2006 im Alter von 45 bei einem Hangglider Unfall in Spanien (sein erster Solo-Flug).

Die RISC OS Version von DP wurde 2003 von R-Comp übernommen. 2007 wurde die DP 3.0 veröffentlicht und hat seitdem nur minimale Updates erfahren. Alan Wrigley ist/war da wohl beteiligt.

DP kennt zwei Bearbeitungs-Modi.

Die Werkzeuge im Layout-Modus:

Die Werkzeugleiste im Daten-Modus:


Eine DP-Datenbank ist immer in einer einzelnen Datei untergebracht; diese kann maximal 128 MB groß sein.

Eine Tabelle kann Felder mit folgenden Datentypen enthalten.

Mit den Feldern sind verknüpft:

Zu jedem Record wird intern ein ID Feld vom Typ Integer verwaltet.

Es werden folgende Keys unterschieden:

Visueller Dreh- und Angelpunkt von DP sind Layouts.

Jeder Tabelle ist mindestens ein Layout zugeordnet, aber ein Layout muß nicht unbedingt mit einer Tabelle verknüpft sein.

Es gibt drei Layout-Typen

Der Layout-Typ kann jederzeit geändert werden; es wird nur die aktuell aktive Sicht definiert.

Neben DB-Feldern kann ein Layout sog. Frames enthalten. Diese folgen zum Teil den Regeln der DB-Feldern, sind aber nicht Teil einer Tabelle sondern des Layouts.

Mittels Subviews können Records einer anderen Tabelle angezeigt werden, welche mit der dem Layout zugeordneten Tabelle verbunden sind (Relationen).

Als Beispiel die Rechnungspositionen in einem Subview:

Zu einem Layout können weiter definiert werden:

Page header/footer sind nur bei Reports sichtbar.

DB-Felder, die im Edit-Modusaus dem Body in den Header bzw. Footer gezogen werden, wandelt DP automatisch in passende Formel-Frames um: z.B. Count() oder Sum(). Können natürlich „von Hand“ passend erstellt werden.

Das Layout kann mittels Rahmen gruppiert oder anderweitig angehüpscht werden. Bei Grafiken kann die Skalierung angepasst werden.

Scripts

Formeln sind im Grunde einfache Scripts, die einen Ergebniswert zurückliefern. Bool bei Scripts, Inhalte bei Formel-Feldern oder Default-Werte.

Frame/Field Scripts werden bei Events ausgeführt, z.B. bei Klicks.

Im Global Script Pool werden Sub-Scripts untergebracht, aber auch das Event-Handling bei DatabaseOpen, EnterRecord und LeaveRecord.

Mittels (generieren) Scriptfiles kann DP u.a. durch externe Programme „ferngesteuert“ werden.

Relationen

können per DragAndDrop definiert werden. Hier können die Primary Key Felder festgelegt werden; diese sind dann fett dargestellt.

Query (DB-Abfrage)

Jede Sicht auf die Inhalte einer DB erfolgt durch ein Query. Diese kann die Sortierung und/oder die Auswahl der Records beinhalten. Querys können vordefiniert sein (und unter einem Namen abgelegt), oder ad hoc erfolgen.

Sicherheit

Der Zugang zur Datenbank kann auch durch Usergruppen organisiert und mittels Passwort geschützt werden. Habe ich mir noch nicht angeschaut.

DP Applikation

Mittels Frames und Scripts können Applikationen um eine Datenbank erstellt werden.

!DPBasicERP von Thomas Milius ist eine davon.

Ansonsten ist mir nur DPGenealogy bekannt; hier ein Screenshot ohne die Toolbox aus dem Handbuch:

Es gibt eine kostenlose Reader-Version von DP, so daß DP-Applikationen auch an User ohne DP-Lizenz weitergegeben werden können.

Mir ist der Zugang zu DP etwas schwer gefallen. Hier lose ein paar Punkte, die mir den Zugang etwas schwer gemacht haben.

Die Dokumentation über DP ist verbesserungsfähig.

Tabellen können nur „indirekt“ über ein Layout definiert werden. Manche Einstellungen sind dabei nur über (Sub-)Menü oder Querys sichtbar. Das macht es manchmal schwierig, den Überblick zu behalten.

Änderungen werden beim Verlassen des Records ohne Rückfrage gespeichert. Das ist manchmal nützlich, manchmal aber fatal.

Die Darstellung von Datum/Zeit ist nur indirekt über die Resourcen des Clients beeinflußbar.

Bei Reports kann kein Page-Break eingestreut werden.

Datei-Links können nicht erzwungen werden. Wenn User nicht aufpasst, wird die Datei in der Datenbank abgelegt. Und der Unterschied ist im UI nur subtil sichtbar.

Bei vielen Records ist die Navigation mittels dem Schieberegler in der Toolbox etwas nervig.

Die 128 MB können bei umfangreichen Projekten, oder mit Grafiken schnell erreicht werden.

Ich vermisse RecordEnter/Leave Events.

Die Toolbox im DP-Fenster kann nicht ausgeblendet werden.

DP hängt im Edit-Modus gelegentlich. Manche Query können nur editiert werden, wenn die Tabelle Records enthält. Datenverlust hatte ich in solchen Situationen nie.

Die Positionierung der Layout-Elemente ist zwar WYSISYG; gelegentlich fehlt aber die exakte numerische Eingabemöglichkeit.

Intern ist DP objektorientiert aufgebaut. Daran musste ich mich ein wenig gewöhnen. Aber es lassen sich damit mit ein wenig Kreativität manche Problemstellungen umschiffen und vermisste Funktionen per Script ergänzen.

Mein Fazit: Mit DataPower muss man sich beschäftigen. Zum einen um die Möglichkeiten auslosten (und das sind einige), zum anderen um die Grenzen und Fallstricke kennenzulernen.

Die Oberfläche verführt dazu, schnell loszulegen und spontan Dinge zu verändern. Das kann manchmal nützlich sein, ist es im Kontext einer Datenbank aber meist nicht.

Mit einer Idee, einem Plan und dem Wissen um sein Werkzeug ist DataPower durchaus geeignet Massen von Daten Herr zu werden.