Kann man eine DB die von Interbase ohne Probleme in Firebrid verwenden oder giebt es irgendwelche Probleme und gehen dann auch noch die IBx Komponenten von Delphi
Announcement
Collapse
No announcement yet.
IB > Firebird
Collapse
X
-
Hallo Frank,<br><br>
von welcher InterBase Version sprichst Du? Ist es InterBase 6.0.x, dann sollte es keine Probleme geben, allerdings solltest Du eine Sache wissen, nämlich dass Firebird in einer Dialect 3 Datenbank nun <b>Ambiguous Queries</b> zurückweist. z.B. die folgende Abfrage ist in InterBase 6.0.x erlaubt, da die Abfrage allerdings eine falsche Ergebnismenge zurückliefern kann, unterbietet Firebird nun so eine Abfrage:
<pre>
SELECT A.FIELDA, B.FIELDA
FROM A JOIN B
ON FIELDX = FIELDY
WHERE FIELDA="99"
ORDER BY FIELDA
</pre>
Bevor Du mit einer Migration von InterBase nach Firebird beginnst, schau unbedingt in die Firebird v1.0 Release Notes rein!<br><br>
Über die Zukunft von IBX mit Firebird wurde schon SEHR VIEL geschrieben, und ich denke, dass Du in diesem Forum auch fündig wirst. Kurz zusammengefaßt bedeutet dies, dass es für Firebird und IBX <b>keine</b> Zukunft gibt, da von Anfang an von Jeff O. (dem Autor von IBX) klar gesagt wurde, dass keine Anstrengungen unternommen werden, um Firebird zu unterstützen. AFAIK, IBX funktioniert mit Firebird 1.0 und soviel ich weiß auch mit Firebird 1.5, allerdings bin ich darüber froh mir deswegen nicht mehr den Kopf darüber zerbrechen zu müssen. Ich bin vor ca. 2 Jahren auf IBObjects umgestiegen. Gut, es war ein hartes Stück Arbeit, aber ich hab die Entscheidung nie bereut.
<br><br>
Gruss,<br>
Thoma
-
Und? Schon umgestiegen? Der Thread ist ja schon eine Weile her...
Wenn ja, würde mich interessieren, wie die Erfahrungen mit FIBPlus sind und warum IBObjects nicht in Frage kam, von dem ja einige andere hier so begeistert sind. Ich kenne beides noch nicht und würde mich gern belehren lassen.
Gruß,
Stefa
Comment
-
Hi Stefan,
nein ich bin immer noch bei den IBX, da diese auch mit dem Final Release 1.5 gut zusammenarbeiten.
Ich habe mich gegen IBObjects entschieden, weil mir bisher niemand sagen konnte, wie ich eine normale TDataSource an die Datenbankkomponenten von IBObjects anschließen kann. Hintergrund: Ohne TDataSource verliere ich alle Komponenten die nicht direkt auf die IBObjects zugreifen können. Die visuellen DB-Komponenten von IBObjects sprechen zwar für sich, doch gleichzeitig verliert man dadurch die Unabhängigkeit und Flexibilität.
Inzwischen habe ich zudem noch einen weiteren Vertreter gefunden: UIB
http://www.progdigy.com/UIB/
zwar bieten diese bei weitem noch nicht den Funktionsumfang der IBX, können aber auf alle möglichen Interbase-Varianten (IB, FB) und in sehr vielen IDE's (Delphi, Kylix, FreePascal, C-Builder) eingesetzt werden.
Verwendet man dann noch Objekte für den Datenbankzugriff (wie von Holger Klemt beschrieben: http://www.h-k.de/oop/artikel_oop.zip) dann spielen die Nachteile der UIB keine Rolle mehr.
Ich verwende die UIB in einigen kleinen Tools und konnte bisher noch keine Probleme feststellen.
Von einem Umstieg werde ich aber kurzfristig auf alle Fälle absehen. Bis zur Version 2 von Firebird wird es sicherlich noch ne weile dauern. Wenn die ersten RC dann erscheinen, werde ich mich dann wieder nach Alternativen umschauen.
In der Zwischenzeit werde ich für neue Module/Appl versuchen einen etwas veränderten Ansatz von ob aufgeführten Artikel von HK bei meinen Programmen anzuwenden um im Falle eines Umstieges die Arbeit zu begrenzen.
Grüße
Wolfgan
Comment
-
Hallo,
OK. Ich baue meine Anwendung sowieso komplett um fürs nächste Major Upgrade, insofern ist die Kompatibilität oder Verwendbarkeit mit TDataset nicht maßgeblich.
Ansonsten geht's mir vor allem um gute Performance, weil ich mit ziemlich umfangreichen Datensätzen jonglieren muss und mit etlichen Nebentabellen, in denen dann Bezeichner nachgeschlagen werden etc. Und ich hörte, dass in puncto Performance die kostenfreien Alternativen immer etwas hinterherhinken würden; kann ich aber aus eigener Erfahrung noch nicht beurteilen.
Bis jetzt finde ich IBO ganz gut (auch wenn ich gerade vergeblich nach einer Möglichkeit suche, die Spaltenreihenfolge im IB_Grid zu ändern und zu speichern ... muss doch noch anders gehen als sie in der zugrundeliegenden Query umzustellen!?).
Gruß,
Stefa
Comment
-
OK, sieht aus, als wäre ich ziemlich blind gewesen. Aber die IBO können einen ja auch erschlagen, jede hat mindestens 100 Properties und die meisten davon sind IB_Stringlists, deren Syntax man sich auch erst mal immer wieder neu aneignen muss ...
Na ja, ich denke, wenn man erst mal eine gewisse Routine hat, kann man eine Menge toller Sachen damit machen. Aber bis dahin ist es ein langer, steiniger Weg.
Jedenfalls vielen Dank,
Stefa
Comment
-
Hallo Florian,
ist jetzt zwar ein bisschen Off-Topic, aber für die eine Nachfrage noch einen neuen Thread anzufangen, ist wohl auch nicht das Wahre ...
Problem bei deinem Tipp: Wie lese ich denn - um sie zu speichern - die tatsächliche Spaltenbreite eines Gridfields aus? Wenn der Nutzer sie mit der Maus verändert (ColResize=True), dann ändert sich Gridlinks nicht und Gridfields[].DisplayWidth auch nicht, und es gibt auch kein OnColResize-Event. Und ein TIB_Column hat auch keine Width-Property. Aber irgendwie muss doch dranzukommen sein!?
Gruß und danke,
Stefa
Comment
-
Hallo Stefan,<br>
<br>
Grid.GridLinks.Text ändert sich.<br>
Mach dir mal einen Button auf deine Form, der dieses Property ausliest und als MessageBox anzeigt. Dann verändere die Spaltenbreite des Grids und klick den Button.<br>
Das Event, das beim Ändern der Spaltenbreite gefeuert werden sollte, ist OnLayoutChange der zugrunde liegenden Query.<br>
Allerdings habe ich das grade mal bei mir probiert, der Event feuert nicht, wenn ich die Spaltenbreite verändere...<br>
<br>
Floria
Comment
Comment