![]() |
Datenbank: Firebird, MySQL,... • Zugriff über: UniDAC
Verschiedene Datenbanken pflegen
Ich habe vor ein Programm zu erstellen, welches verschiedene Datenbanken anbietet, z.B. Firebird und MySQL.
Dafür benutz ich UniDAC von CoreLab. Das Programm wird ein längeres Projekt, welches auch immer weiter gepflegt und erweitert wird. Deswegen nun meine Frage: Wie lass ich mein Programm die verschiedenen Datenbanken am Besten pflegen? Also neue Tabellen anlegen, alte unbenötigte Felder löschen, neue Felder anlegen, Indizes setzen,... Hat da jemand ne Erfahrung mit? |
Re: Verschiedene Datenbanken pflegen
Du möchtest also soetwas wie den IBExpert für Interbase und Firebird für mehrere Datenbanken bauen. Habe ich das soweit richtig verstanden ?
|
Re: Verschiedene Datenbanken pflegen
Zitat:
Morphie, schaue dir an, was du an Objekttypen verwendest. Dann schaue ob UniDAC dir eine generische Möglichkeit gibt, Metadaten einer DB auszulesen. Also Tabellen, Spalten, Indizes, ... Nun nimmst du dir einfach ein Objektmodell, was das für dich ausdrücken kann. So dass du bei einem Update sagen kannst: "so soll es ausssehen". Dein Programm muss dann die wirklichen Metadaten aus der DB lesen und mit den geforderten Vergleichen. Am Ende musst du ein Change script erzeugen, welches dann die DB auf den neuesten Stand bringt. Wenn UniDAC das nicht für die unterstützten DBs kann, solltest du dir eine abstrakte Basisklasse und Ableitungen für jedes DBMS schreiben, die aus deiner Definition für eine Tabelle (mit Infos über Spalten, Indizes, Keys, ...) und dem was wirklich da ist das richtige Change script erzeugen können. Das ist egentlich reine Fleißarbeit. Also viel Arbeit aber nicht wirklich sehr schwierig. Ich weiß leider nichts von einer Delphi Bibliothek, die das für dich übernehmen könnte... :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz