Datenbankstruktur aktualisieren

04/09/2007 - 11:10 von Arthur Dent | Report spam
Hallo,

ich möchte im Datenlayer unterschiedliche Datenbanken verwenden (Access,
Oracle, MSSQL, MaxDB, MYSQL, ...)

Für jede Datenbank muss ich die CREATE-Befehle bei der Installation und die
ALTER-Befehle für ein Update einzeln festlegen ... ist also ziemlich viel
Aufwand ... aber leider sind die DBMS nicht kompatibel genug zueinander,
dass es immer mit einem Befehl für alle klappt.

Zum Beispiel AUTO_INCREMENT bei MYSQL, IDENTITY(1,1) bei MSSQL.

Gibt es eine Komponente, die die SQL-Befehle an die Datenbanken anpasst?
Gibt es eine Komponente, die vorhandene DB-Struktur analysiert, mit den
CREATE-Befehlen vergleicht und daraus die ALTER-Befehle erstellt?

Danke :-))
 

Lesen sie die antworten

#1 Peter Götz
04/09/2007 - 12:01 | Warnen spam
Hallo Arthur,

ich möchte im Datenlayer unterschiedliche Datenbanken
verwenden (Access, Oracle, MSSQL, MaxDB, MYSQL, ...)



Das sind z.T. aber schon recht verschiedene Hölzer,
die man nicht alle mit dem gleichen Hobel bearbeiten kann.


Für jede Datenbank muss ich die CREATE-Befehle bei
der Installation und die ALTER-Befehle für ein Update
einzeln festlegen ...



Den Zusammenhang zwischen "Installation" und Create- bzw.
Alter- Statements sehe ich jetzt nicht so recht.

ist also ziemlich viel Aufwand ...



Ja, kein Zweifel, es bedeuten einen nicht beachtlichen
Aufwand, wenn eine Anwendung mehrere unterschiedliche
DB-Systeme bedienen soll.

aber leider sind die DBMS nicht kompatibel
genug zueinander, dass es immer mit einem
Befehl für alle klappt.



So isses und deshalb wird es die "eierlegende
Wollmichsau", die mit drei Mausklicks eine
Anwendung erstellt, die jedes DB-System
bedienen kann, wohl nur schwer geben können.


Zum Beispiel AUTO_INCREMENT bei MYSQL,
IDENTITY(1,1) bei MSSQL.

Gibt es eine Komponente, die die SQL-Befehle
an die Datenbanken anpasst?



An welche Datenbanken?
Die von Dir oben aufgeführten sind nur ein kleiner
Ausschnitt aus einem breiten Spektrum von DB-
Systemen.

Gibt es eine Komponente, die vorhandene
DB-Struktur analysiert, mit den CREATE-Befehlen
vergleicht und daraus die ALTER-Befehle erstellt?



Da unterschiedliche DB-Systeme unterschiedliche
Strukturen und auch unterschiedliche Zugriffsmethoden
haben, ist eben auch das Analysieren solcher
Strukturen schon eine oft recht individuelle Angelegenheit.

Wie man Metadaten (also Strukturen und sonstige
"Innereien") aus einem SQL-Server und / oder aus einer
Access.mdb bekommt, kannst Du Dir in den
Beispielen unter

www.gssg.de -> Visual Basic -> VB.net

-> SQLserver_00 ... SQLserver_01
-> OleDB1 (Access.mdb)

ansehen.
Dazu dann passende SQL-Statements zu bauen
bleibt Deiner Kreativitàt überlassen. ;-)

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen