AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird Versionswechsel
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Versionswechsel

Ein Thema von hanspeter · begonnen am 10. Mär 2008 · letzter Beitrag vom 11. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Firebird Versionswechsel

  Alt 10. Mär 2008, 09:27
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBDAC
Hallo,
kennt wer ein (Kauf) Tool mit welchen ich eine Firebird Datenbank in einem ASCII Format (CSV,XML oder ähnlich)
ausgeben und einlesen kann?

Ich archiviere Firebird Datenbanken, welche mit unterschiedlichen Versionen erzeugt wurden.
Gelegentlich wird die eine oder andere Datenbank nochmals benötigt.

Standardvorgehensweise ist ja Backup mit der Erzeugerversion und Restore in der neuen Version.
Auf meiner Entwicklungsmaschine habe ich jeweils die neuste Version des Servers als Dienst und alle anderen unter einer anderen Portadresse als Application laufen.
Diese Vorgehensweise ist aber für den Nutzer des Programms nicht akzeptabel.

Wenn so ein Tool nicht beschaffbar ist, denke ich dieses mit embedded Firebird selbst zu schreiben, möchte mir diese
Arbeit aber gerne sparen.

Der Ablauf:

Erkenne Version der vorliegenden Datenbank.
Gib die Daten über embeddedSQL als Transferdatei aus.
Lese die Daten in der aktuellen FB Version ein.
Da in FB2.1 einige nicht als reserviert gekennzeichnete Wörter (z.B. Start oder Starts) nicht als Tabellenname funktionieren, muss ich beim Einlesen den Tabellennamen anpassen.
Für einen Tip dankbar.

Gruß Peter
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 09:30
Man könnte auch ein SQL-Skript erzeugen. Dieses liese sich dan, wenn nicht Features neuerer Versionen benötigt werden, auch in ältere Versionen einspielen.
Markus Kinzler
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 10:01
Zitat von mkinzler:
Man könnte auch ein SQL-Skript erzeugen. Dieses liese sich dan, wenn nicht Features neuerer Versionen benötigt werden, auch in ältere Versionen einspielen.
So macht das der IBExpert.
Die zugehörige Dll ist als Kaufteil verfügbar.
Was ich für ein Zwischenformat nehme ist aber eigentlich egal.
Mich interessiert eigentlich nur ob es sowas schon fertig gibt.

Gibt es übrigens eine Möglichkeit ohne Server beir der *.fdb Datei die Version herauszubekommen?


Peter
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 12:48
Warum verwendest du denn dann nicht IBExpert ? Es ist doch ein leichtes solche Sachen als eigenen Kommentar reinzuschreiben. Muss das automatisiert werden ?

Tja, dann eben so und das im Anhang ist zu sehen.

ShowMessage(DataModul.Database.Version);
Miniaturansicht angehängter Grafiken
unbenannt_255.jpg  
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 12:50
Zitat:
Warum verwendest du denn dann nicht IBExpert ? Es ist doch ein leichtes solche Sachen als eigenen Kommentar reinzuschreiben. Muss das automatisiert werden ? Shocked
Dann müsste jeder Kunde ja IBExpert installiert haben.
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 12:56
Dann soll er IBEScript verwenden. Sichere ich meine Quelltexte, dann zumindest auch noch die DB-Definition. Und zwar genau mit dem Teil. Dem ist auch egal, ob embedded oder nicht.
Gruß
Hansa
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 13:22
Zitat von Hansa:
Dann soll er IBEScript verwenden. Sichere ich meine Quelltexte, dann zumindest auch noch die DB-Definition. Und zwar genau mit dem Teil. Dem ist auch egal, ob embedded oder nicht.
1. Will ich beim Kunden kein IBExpert installieren.
2. Müßte ich dann die Bedienung erklären.
3. Müßte ich trotzdem die zur Datenbank gehörige Serverversion installieren.

Die Datenbank handelt eine Veranstaltung und geht danach in die Ablage.

Gelegentlich will jemand in den alten Daten mal was nachsehen. (Wieviele Starter waren in einer Prüfung vor drei Jahren)
Da sollte ein Datenbankimport schon automatisch laufen.

Mich interessiert ja auch nur ob es ein fertiges Tool gibt, welches evenduell auch an dem Server vorbei geht.
So wie es die Datenrettungstools für FB es auch machen.

Zum selber Programmieren habe ich zwei gangbare Ansätze. Das ist einmal über die IBExpert- IBScript dll.
Da ich als Zugriffsschicht IBDAC vrwende, biete sich hier eine Variante mit Memorytable und Zwischenspeicherung als
XML an.

Gruß
Peter
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#8

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 14:31
Schau mal hier:

SQL Manager for Interbase/FireBird

Da gibt es neben dem SQL Manager auch noch andere Produkte, die dir evt. weiterhelfen könnten.
Außerdem gibt es von dem SQL Manager auch noch eine "Lite"-Version, mit der man das Programm auch erstmal ohne es zu kaufen nutzen kann.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 14:55
Hi,

Zitat von hanspeter:
Die Datenbank handelt eine Veranstaltung und geht danach in die Ablage.
du hast Dir dabei sicherlich einiges überlegt das Design so zu machen, vielleicht war es auch der Wunsch des Anwenders - aber dieses Vorgehen führt meiner Meinung nur zu Problemen:

Ich denke doch, dass die Leute nicht direkt in der Datenbank rumeditieren, sondern dass Du eine Anwendung dazu hast. Was passiert, wenn Du diese mal änderst und die Anwendung eine andere Tabellenstruktur erwartet? Vielleicht kommen ja neue Tabellen dazu usw...

Ein "Reimport" über Backup-Restore scheidet daher meiner Meinung nach aus, da Du sonst die Datenbank nach dem Öffnen erst mal überprüfen musst und gegebenenfalls die Tabellenstruktur anpassen musst.

Ein Export in ein anderes Format wie XML ist meiner Meinung nach aber auch unsinnig, denn dazu hast Du ja eigentlich die Firebird-DB im Einsatz.

Was spricht dagegen in einer Datenbank mehrere Veranstaltungen zu speichern? Der Anwender muss davon ja nichts mitbekommen. Vor allem muss er nicht alle paar Monate die Datenbank runterfahren, das Datenbankfile wegkopieren und ein neues anlegen...

Sollte das aber aus welchen Gründen auch immer nicht gehen, dann sehe ich den Export in ein neutrales Format wie XML als "beste unsinnige" Lösung an Da kannst Du dann beim Importieren evtl. Änderungen im Datenmodell einfach handhaben. Für den Export in ein XML sollte es eigentlich fertige Komponenten geben. Im schlimmsten Fall jede Tabelle einzeln in je ein XMl auslesen und alle XML in einen Zip-Container verfrachten.

Wenn Du dir das Leben dann noch vereinfachen willst, baust Du dir einen kleinen Viewer, der den Ihnalt der ausgelesenen XML-Files anzeigen kann, dann müssen die Anwender die Daten nicht mehr importieren....

GRüße
Lemmy
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Firebird Versionswechsel

  Alt 10. Mär 2008, 19:33
Zitat von Lemmy:


du hast Dir dabei sicherlich einiges überlegt das Design so zu machen, vielleicht war es auch der Wunsch des Anwenders - aber dieses Vorgehen führt meiner Meinung nur zu Problemen:
Doch das Design macht schon Sinn.
Die Datenbank wird vor einer Sportveranstaltung angelegt und wird nach dem Ende der Veranstaltung nicht mehr benötigt. Die Aufbewahrungsfrist beträgt max. 4 Wochen für Einsprüche abrufbar und dann 1 Jahr offline.
Alle relevanten Daten wie Teilnehmeradressen Zahlungen u.s.w. werden in eine Archivdatenbank übernommen und dort für zukünftige Veranstaltungen vorgehalten.
Die Ergebnisse werden in eine zentrale Ergebnisdatenbank übertragen.
Im Laufe der Jahre sind das etwa einhundert *.FDB Dateien geworden.

Die Datenbank selbst wird in der Vorbereitungsphase mehrfach per email übertragen, sollte deshalb schon nicht allzu groß sein.
In einem Ordner werden neben dieser Datenbank noch zusätzliche Informationen der Veranstaltung wie Programmheft, Werbevorlagen, Schriftverkehr
Jetzt kam mal ein User auf die Idee die Teilnehmerentwicklung der letzten 5 Jahre in einer bestimmten Prüfung zu wollen. Jede der Datenbanken, die nach Vereinen archiviert sind wurde mal für eine Minute benötigt. Dank der Versionen eine Heidenarbeit.
Das Zweischenformat benötige ich nur temporär. Datenbank unter 1.5 ausgeben, unter 2.1 einlesen - Temporäre Dateien löschen.
Über ein lesbares Zwischenformat muss ich ohnehin gehen, da einige Feldbezeichner und ein Tabellenname geändert sind. (FB2.1 läßt keine Tabellen mit dem Namen Start,Starts und
ähnliche Ableitungen zu.)
Alternativ könnte man auch überlegen, die Funktionalität von IBExpert zu nutzen und die Datenbank nicht als FDB Datei, sondern als Metadatenausgabe zu archvieren.
Hier sollte es wohl reichen eine Lizenz von IBScript zu kaufen?

Gruß Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz