Guten Morgen Stefan,
es ging letztlich um das Auslesen der DDL-Strukturen auf DB-Ebene. Damit möchte ich Kopien einer Tabelle anlegen können. Mit Programmen wie FlameRobin etc. ist das natürlich kein Problem. Aber direkt auf DB-Ebene habe ich noch keine vollumfassende Lösung gefunden.
Gruß
Martin
Tabellenstruktur kopieren
Moderator: thorben.braun
- martin.koeditz
- Beiträge: 474
- Registriert: Sa 31. Mär 2018, 14:35
Martin Köditz
it & synergy GmbH
it & synergy GmbH
Da gibt es keine native Unterstützung.
Mittels Schemaabfragen über den Treiber erhält man dann die Spalten-/Index-/Constraint-Informationen um sich damit dann die DDL's selber zusammen zu bauen.
Das ist eben dasselbe, was eben IBExpert, FlameRobin und andere für dich erledigen.
Mittels Schemaabfragen über den Treiber erhält man dann die Spalten-/Index-/Constraint-Informationen um sich damit dann die DDL's selber zusammen zu bauen.
Das ist eben dasselbe, was eben IBExpert, FlameRobin und andere für dich erledigen.
- martin.koeditz
- Beiträge: 474
- Registriert: Sa 31. Mär 2018, 14:35
Das ist mir schon klar. Das gleiche müsste man aber auch über Stored Procedures direkt in der DB aufbauen können. Letztlich benötigt man ja "nur" ein SQL-Statement.Da gibt es keine native Unterstützung.
Mittels Schemaabfragen über den Treiber erhält man dann die Spalten-/Index-/Constraint-Informationen um sich damit dann die DDL's selber zusammen zu bauen.
Das ist eben dasselbe, was eben IBExpert, FlameRobin und andere für dich erledigen.
Gruß
Martin
Martin Köditz
it & synergy GmbH
it & synergy GmbH
Klar geht das.
Viel Spaß dabei;-).
Am Besten kann man sich dafür die Quellen des .Net-Treibers herunterladen und sich ansehen, wie da die Schema-Informationen aus den RDB$-Tabellen ausgelesen werden.
Ins besonders die Übersetzung der numerischen Feldtypen in SQL-Typen, da ja die FB alles über interne Strukturen in den RDB$-Tabellen ablegt.
Dies gilt dann ebenso für Indizes, Constraints. Für Views ist der native SQL in einem BLOB abgelegt.
Das Hauptproblem dabei ist, dass eben die Felder einer Tabelle grundsätzlich über Domains definiert werden.
Viel Spaß dabei;-).
Am Besten kann man sich dafür die Quellen des .Net-Treibers herunterladen und sich ansehen, wie da die Schema-Informationen aus den RDB$-Tabellen ausgelesen werden.
Ins besonders die Übersetzung der numerischen Feldtypen in SQL-Typen, da ja die FB alles über interne Strukturen in den RDB$-Tabellen ablegt.
Dies gilt dann ebenso für Indizes, Constraints. Für Views ist der native SQL in einem BLOB abgelegt.
Das Hauptproblem dabei ist, dass eben die Felder einer Tabelle grundsätzlich über Domains definiert werden.
- martin.koeditz
- Beiträge: 474
- Registriert: Sa 31. Mär 2018, 14:35
Das ist eine gute Idee. Vielleicht etwas für einen Winterabend (oder -wochenende).Am Besten kann man sich dafür die Quellen des .Net-Treibers herunterladen und sich ansehen, wie da die Schema-Informationen aus den RDB$-Tabellen ausgelesen werden.
Dank und Gruß
Martin
Martin Köditz
it & synergy GmbH
it & synergy GmbH
Hallo Martin
du kannst von den alten Interbase/Firebird Komponenten IBX die Komponente IBExtract nutzen, wenn du Delphi oder sden CBuilder hast.
Die macht , glaub ich, so ziemlich das, was du suchst.
du kannst von den alten Interbase/Firebird Komponenten IBX die Komponente IBExtract nutzen, wenn du Delphi oder sden CBuilder hast.
Die macht , glaub ich, so ziemlich das, was du suchst.
Schöne Grüße aus dem Südharz
Jörg
Jörg