DBO - DataBaseObjects

1 Konzepte

DBO kann für verschiedene Zwecke eingesetzt werden.

1.1 DBO als Klassengenerator

Läßt man die Datenbankfunktion außer acht, so kann DBO als "Poor Man's Rose" (Rose ist eingetragenes Warenzeichen von Rational) benutzt werden. Man erstellt mit Access eine Datenbank mit Tabellen entsprechend der Klassen, die man erzeugen will, Relations in der Db können zu Relations zwischen Objekten werden.

1.2 DBO als Formgenerator

Für jede Tabelle einer Datenbank kann eine Form angelegt werden.

1.3 DBO für SQL-Muffel

Es muß kein einziger SQL-Befehl mehr für Laden, Speichern, Löschen und Ändern in eine Datenbank getippt werden. Kein ärgerliches Suchen mehr nach Tipfehlern in einer 3 Zeilen Insert Anweisung, kein stumpfes Eintippen der immer gleichen SQL-Befehle...

1.4 DBO um Vererbung zu realisieren

Wie bitte, Vererbung - mit Visual Basic - das geht natürlich nicht. DBO trickst ein bißchen. Man kann beim Erzeugen von Klassen Attribute und Methoden anderer Klassen "erben" - sie werden einfach in die Klasse kopiert (Also keine richtige Vererbung und es ist nur eine „Generation“ pro Durchlauf möglich).

Mögliche Vaterklassen sind Klassen, die DBO aus einem Ordner eingelesen hat. Als Standartrepository liest DBO beim Start den Ordner AppPath\Repository. Man kann weitere Ordner angeben.

Neuerdings können sogar Forms von einander erben

1.5 DBO und ReverseEngeneering

DBO legt in jeder Datei Kommentare an der Form :

'eigene ..

'eigene .. Ende

Wird ein erneuter Druchlauf mit DBO gestartet (weil z.B. sich die DB-Struktur geändert hat), so kann das bestehende VB-Projekt ausgelesen werden. Code der zwischen diesen Kommentaren steht bleibt unberührt.

Vorsicht : Ändert man die Oberfläche der erzeugten Forms, so werden diese Änderungen überschrieben. (Option "Forms nicht ändern" ist geplant)

1.6 DBO und ActiveX

Wer schon immer der Meinung war, daß Visual Basic Projekte schnell unübersichtlich werden ... dem gebe ich sofort recht.

Ein Ausweg : Komponenten à man hat ein VB-Projekt für die DataServices und UserServices und ein VB-Projekt für den Rest (naja, die Aufteilung geht noch nicht so recht in Richtung 3-stufiger Architektur, aber ich arbeite daran..)

Dazu ist einfach "ActiveX Komponente erstellen" wählen, das Projekt in Visual Basic öffnen, kompilieren, Regsvr32.exe xy sagen und als Komponente in das andere Projekt laden (kleiner Tip : es gibt Projektgruppen zum Zusammenfassen von VB-Projekten)

2 Objekte

DBO erzeugt pro Tabelle eine Klasse mit entsprechenden Attributen. Für Fremdschlüssel werden außerdem Objekte der entsprechenden Klasse angelegt (Beispiel Adressverwaltung : die Klasse Person enthält nicht nur ORT_ID als Long, sondern auch ein Objekt m_ORT der Klasse Ort). Umgekehrt wird bei 1-n Relation auf der anderen Seite ein Kontainerobjekt angelegt, welches alle Objekte laden kann, die auf das entsprechende Objekt verweisen (Beispiel Adressverwaltung : die Klasse ORT enthielte ein Kontainerobjekt m_Personen, welches alle Personen dieses Ortes enthalten kann).

Attribute

Methoden :

3 Kontainerobjekte

4 Nachteile

Stephan Riedel - letzte Aktualisierung 05.02.00