![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: gbak
Umstellung InterBase 7.5 -> Firebird 2.5
Hallo,
eine InterBase Datenbank 7.5 (ODS 11.2) kann in Firebird 2.5 nicht geöffnet werden, ODS 11.2 in Firebird ist offensichtlich nicht kompatibel:
Code:
Beim Versuch, ein InterBase Backup einzulesen kommt man etwas weiter, allerdings bricht das Restore ab
unsupported on-disk structure for file C:\I4\DB\TS2-RESTORED-1.GDB; found 11.2, support 11.2.
Zitat:
Ist es über gbak "im Prinzip" möglich eine InterBase 7.5 Datenbank zu restoren oder setze ich gerade auf das falsche Pferd? |
AW: Umstellung InterBase 7.5 -> Firebird 2.5
Lasse Dir ein SQL-Skript erstellen, dann sollte es funktionieren. DIE ODS-Versionen sind nicht kompatibel, deshalb funktioniert auch eine Backup/Restore nicht.
|
AW: Umstellung InterBase 7.5 -> Firebird 2.5
Zitat:
Ein Beispiel: die maximale Länge der Generatornamen ist in Firebird kürzer: Zitat:
Viele der Fehlermeldungen sind leicht in der InterBase Datenbank korrigierbar. Ein großer Teil entfällt auf das Keyword DESCRIBE (Descriptions der Metadaten-Objekte). Das kann man allerdings in IBExpert über eine Option anpassen, dann werden COMMENT Statements im SQL Skript erzeugt. Andere sind noch unklar (z.B. Fehlemeldungen die sich auf eine "ORDER BY" clause beziehen, die aber im SQL Statement der Stored Prozedure gar nicht enthalten ist: Zitat:
|
AW: Umstellung InterBase 7.5 -> Firebird 2.5
Schau mal, ob dir die Data
![]() Kostet zwar Geld, aber es gibt eine Testversion, die trotz ihrer Einschränkungen zumindest für einen Test hinreichend sein sollte! Grüße Mikhal |
AW: Umstellung InterBase 7.5 -> Firebird 2.5
Zitat:
Objektnamen dürfen bei Firebird 2.5 nicht länger als 31 Zeichen sein. Spalten mit boolschen Werten werden nicht unterstützt. Dementsprechend erst alle Objektnamen auf 31 Zeichen kürzen und boolsche Spalten durch andere Domain / Werte ersetzen. Welche Objekte Namen haben die länger als 31 Zeichen sind kann man durch Zugriff auf die Systemtabellen erfragen ( ![]() Ich würde dafür ein kleines Programm basteln das eine Liste mit Objektnamen > 31 Zeichen erstellt und für jeden Namen eine Ersetzung mit weniger als 31 Zeichen bastelt. Anschließend könntest Du anhand dieser Liste das SQL Script so bearbeiten das jedes Vorkommen mit mehr als 31 Zeichen durch den neuen Namen ersetzt wird. Es müsste (bei entsprechenden Rechten) auch möglich sein die Objektnamen direkt in den Systemtabellen zu ändern, über die Nebenwirkungen kann ich nichts sagen. cu Ha-Jö |
AW: Umstellung InterBase 7.5 -> Firebird 2.5
Hallo,
Zitat:
aus dem Kopf gbak -page_size 16384 |
AW: Umstellung InterBase 7.5 -> Firebird 2.5
Nein , das Limit ist "Hardcoded"
![]() es gibt Pläne das in V4 zu erhöhen mfg Hannes |
AW: Umstellung InterBase 7.5 -> Firebird 2.5
Danke für die vielen Antworten und Tipps!
Insgesamt ist der Versuch der Portierung eine empfehlenswerte Erfahrung, einige Probleme in den Metadaten werden von Firebird beim Einlesen des SQL Skripts erkannt, zum Beispiel * uneindeutige Felder (ohne Alias) * order by nach einem Feld das nicht in der Datenmenge vorkommt ("SELECT MIN(FELD) FROM TABELLE ORDER BY ANDERES_FELD"). InterBase akzeptiert dies, Firebird nicht. Es war in einer Stored Procedure tatsächlich damit ein Performancegewinn erreicht worden (anderer PLAN). Die überlangen Generatornamen lassen sich, da es nur wenige sind, noch mit vertretbarem Aufwand ändern. |
AW: Umstellung InterBase 7.5 -> Firebird 2.5
Für Abfragen für Metadaten mit Namen länger ab 31 Zeichen konnte ich die substr UDF verwenden:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 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-2025 by Thomas Breitkreuz