Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Delphi 2009, IBX und Firebird: Endgültig vorbei? (https://www.delphipraxis.net/120881-delphi-2009-ibx-und-firebird-endgueltig-vorbei.html)

kretabiker 18. Sep 2008 09:10

Datenbank: Firebird 2.0x • Version: 2.0x • Zugriff über: IBX

Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Hallo allerseits,

derzeit spiele ich mit der Release-Version von D2009, um zu sehen, welche Hemmnisse bei der Umstellung meiner Projekte von D2007 auftreten.

Bislang verwende ich die IBX-Komponenten, um auf Firebird-Datenbanken (1.0x bis 2.0x) zuzugreifen - bis einschließlich D2007 war das auch problemlos möglich. Jetzt bekomme ich unter D2009 in einem kleinen Testprojekt nicht einmal mehr eine TIBDataset-Verbindung geöffnet: Sobald ich ein IBDataset.Open absetze, kommt sofort die Meldung "Divison by zero".

Kann jemand diese Meldung nachvollziehen (das wäre das erwartete Ende der Kombination "IBX + Firebird")? Oder anders gefragt: Ist es bereits gelungen, mit D2009-IBX auf eine Firebird 2.04-Datenbank zuzugreifen?

Das IBX-Problem ist derzeit noch kein Drama, da noch einige der von mir wichtigen Drittanbieter-Komponenten nicht D2009-kompatibel sind. Es wird sicherlich noch einige Monate ins Land gehen, bevor an eine Umstellung zu denken ist; bloß es wäre für mich schon wichtig zu wissen, ob auch die Datenbankzugriffe geändert werden müssen. Das dies früher oder später kommen könnte, war und ist klar, aber man hofft ja auf "später"... ;-) Wenn dem jetzt so ist, werde ich mal die FIBPlus-Komponenten näher unter die Lupe nehmen wegen ihrer relativen Nähe zu den IBX-Komponenten.

Gruß aus dem Norden

Udo "Kretabiker" Treichel

mkinzler 18. Sep 2008 09:13

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Die Kompatibilität nimmt ja schon lang mit jeder version von IBX und FB ab. Ich würde nicht warten, bis gar nichts mehr geht sonder jetzt reagieren und die ohnehin besseren Komponenten von FIBplus oder IBDAC nehmen.

kretabiker 18. Sep 2008 09:45

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Hi mkinzler,

danke für deine Antwort. Ja, ich gebe dir recht, die Umstellung auf (wahrscheinlich) FIBplus befreit mich sicherlich von DIESER Last - aber der Umstellungs(-zeit-)aufwand bei bald 2 Mio Zeilen Source in mehreren Projekten ist nicht zu unterschätzen, da muss ich schon mehrere Wochen einplanen - das schiebe ich dann schon ganz gerne, um zunächst mit anderen, funktionalen Erweiterungen fertig zu werden.

Wenn sich herausstellt, dass IBX ab D2009 tatsächlich nicht mehr einsetzbar ist, ist die Umstellung auf D2009 erst einmal vom Tisch, dann bleiben die Projekte unter D2007, bis ich an die Anpassung für Unicode gehe (das ist tatsächlich eine Anforderung für zukünftige Kunden, die östlich von Europa sitzen) - dann wird eben ein zusätzlicher 4-Wochen-Slot für die FIBplus-Umstellung eingeplant. Vor dem ersten ServicePack für D2009 würde ich wahrscheinlich eh nicht umstellen... :-D

Von daher ist es für mich erst einmal nur wichtig zu wissen, ob es tatsächlich nicht mehr geht; dann kann ich weitere Entscheidungen treffen.

Gruß aus dem Norden

Udo "Kretabiker" Treichel

pixfreak 18. Sep 2008 10:44

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Moin,

ich nutze im Moment unter Delphi 2009 die IBX Komponente, um auf FB 2.1 zuzugreifen. Klappt mit einfachen Queries auch ohne Probleme. Gegen eine Stored Procedure hab ich es noch nicht getestet. Allerdings ist das nicht mein Standardweg. Warte halt darauf, dass IBDAC für D2009 verfügbar ist. Zum Übergang haut es aber hin.

Ach so: Ich greife auf meine DB allerdings als named pipe zu, nicht über TCP-Stack.

EDIT: Ich hab es eben mal über 127.0.0.1 als TCP Verbindung probiert. Geht bei mir aber auch!

VG Pixfreak

Hansa 18. Sep 2008 11:06

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Mit D2009 wird doch endlich eine neue IBX-Version ausgeliefert, oder etwa nicht ? Aber die wird nicht viel nützen, es sei denn es wird nur .Insert, .SelectSQL etc. verwendet. Das ist typisch Borland. Zuerst wird IB mangels Interesse wenigstens fairerweise geopensourced :zwinker: und dann sieht man den FB Erfolg und versucht durch die Hintertür sein weggeschmissenes Stück vom Kuchen zurückzubekommen. Rest : siehe mkinzler. Es stellt sich eigentlich nicht die Frage "ob" sondern "wann". Ansonsten droht Deinen Programmen IMHO BDE-ähnliches Schicksal.

kretabiker 18. Sep 2008 17:33

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Hi,

danke für eure Antworten.

@pixfreak: Das ist eine positive Nachricht. Wenn du es schaffst, per TCP/IP auf eine Firebird-DB zuzugreifen, muss es mir doch auch gelingen, das gibt's doch gar nicht. Da werde ich wohl noch einmal herumprobieren müssen. Danke für die Info - das macht mir Mut.

@Hansa: Ich denke schon, dass es um eine neue IBX-Version handelt, habe ich noch gar nicht geprüft. Es ist bedauerlich, dass sich Borland/Codegear/Embarcdero und die Firebird-Entwickerlergemeinde so in die Haare bekommen haben, denn die Kombination Delphi/IBX/Firebird ist eine interessante, schnelle, kostengünstige und - aus Kundensicht - völlig unproblematische Lösung, die auch unter höherer Last stabil und performant läuft. Aber diese Diskussion will ich hier gar nicht wieder lostreten, dazu ist schon ne Menge gesagt/geschrieben worden. Ich wäre froh, dieses Delphi-Release noch ohne erzwungene Änderung der Datenbankzugriffskomponenten zu überstehen und dann im nächsten Jahr in Ruhe das "Große Redesign" meiner Projekte anzugehen - Unicode, Multitier mit den Remobjects DA/RO-Komponenten und in diesem Zusammenhang ggfs. auch Änderung der Datenbankkomponenten... (ach, wäre doch schon nächstes Jahr...)

Soderle, jetzt mache ich mal schnelle D2009 auf und versuche nochmal, mit IBX auf eine meiner Datenbanken zuzugreifen...

Gruß aus dem Norden

Udo "Kretabiker" Treichel

omata 18. Sep 2008 17:43

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Ich kenne dein Projekt ja nicht.

Den Umstieg von der BDE auf dbExpress habe ich damals in einzelnen Stücken vollzogen. Wenn deine Anwendung so gross ist, dann baue doch einfach die neuen Komponenten hinzu, baue deine einzelnen Units langsam um. Du hast dann erstmal zwei Datenbankverdindungen pro Anwendung. Aber der alte Zugriff wird immer kleiner, bis er ganz verschwunden ist. So bist du nicht so unter Zeitdruck und kannst alles ganz gemütlich umbauen.

Nur mal so als Vorschlag...

mkinzler 18. Sep 2008 18:14

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Dann braucht er aber auch einen passenden dbExpress-Treiber

omata 18. Sep 2008 18:20

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Das war doch nur ein Beispiel...

kretabiker benutzt dann halt IBX und FIBplus.

mkinzler 18. Sep 2008 18:39

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Bei IBDAC ist sogar eine BDE-Konvertier-Assistent dabei

kretabiker 18. Sep 2008 18:55

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Hi again,

@omata: Darüber habe ich auch schon nachgedacht, ist sicherlich eine Möglichkeit.

Inzwischen habe ich noch einmal versucht. Folgendes (alles via TCP-Stack auf localhost bzw. 127.0.0.1 gegen FB 2.0.4): Mit TIBSql kann ich Daten abfragen, das funktioniert. Verwende ich dagegen die TIBDataset-Komponente, kommt weiterhin die "Divison by Zero"-Meldung. @pixfreak: Mit welcher Komponente hast du getestet?

Was aufgefallen ist im Zusammenhang mit TIBDataset: Das Zusammenstellen eine trivialen Select-Statements (drei Felder einer Tabelle, kein Joins etc.) im Anweisungstext-Editor (Auswahl "SQL bearbeiten" im Kontextmenü) funktioniert noch einwandfrei, alle Tabellen und die Felder der ausgewählten Tabelle werden angezeigt. Wechsle ich jedoch in den Datenmengen-Editor ("Datenmengen-Editor" im Kontextmenü) kommt bereits bei Anzeigen des Dialogs zur Meldung "Die Feldnamen für IBDataset1 konnten nicht erkannt werden", entsprechend sind die Listboxen für Schlüssel- und Aktualisierungsfelder leer. Manuell nachladen über "Tabellenfelder lesen" geht dann zwar, aber egal was ich dann mache, die obige Meldung kommt immer wieder, die SQL-Statements werden nicht oder nur unvollständig generiert.

Nicht gut.

Gruß aus dem Norden

Udo "Kretabiker" Treichel

pixfreak 19. Sep 2008 10:30

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Hi,

ich habe mit TIBQuery zugegriffen. Das funzt. TIBDataset habe ich nicht verwendet. Halte mich etwas flexibel, da ich mit IBDAC hauptsächlich auch nur mit IBCQuery arbeite.

Ganz Wichtig: Ich betrachte die Verwendung der IBX im Moment nur als temporären workaround! (... um in die Sprache Delphi rein zu kommen, mal was anderes als C++, und da nutze ich den Builder 2007 mit den DevArt Komponenten) Will das halt säter in meinem neuen Projekt dann auch langsam wieder ausschleichen... :wink:


VG Pixfreak

pixfreak 30. Sep 2008 15:16

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Moin,

habe eben mal mi dem IBX auf eine FB 2.1 Datenbank zugegriffen, wo UTF8 der Standard ist.
Dort bekomme ich mit allen Zugriffskomponenten den Divion by Zero Fehler.
Die anderen Tests hatte ich mit ISO8859_1.

Just for info...


VG Pixfreak

kretabiker 1. Nov 2008 01:00

Re: Delphi 2009, IBX und Firebird: Endgültig vorbei?
 
Hi,

falls es jemanden interessiert: Zum gleichen Thema gibt es einen interessanten Beitrag im Codegear-InterbaseExpress-Forum, wo genau mein Problem bei einem anderen User in Verbindung mit Interbase(!) auftritt. Jeff Overcash hat selbst geantwortet und darauf hingewiesen, dass in D2009 bzw IBX 12.x nur die Charactersets UTF8, Unicode_FSS und ein japanischer Zeichensatz implementiert sind - dass bislang bei anderen Zeichensätzen keine Probleme aufgetreten sind, sei reine Glückssache gewesen... Weiter empfiehlt er, den Zeichensatz leer zu lassen oder UTF8 oder UNICODE_FSS zu verwenden.

Der vollständige Thread dazu im Codegear/Embarcadero-Forum (ich hoffe, dass dieser Deeplink hier erlaubt ist. Anmeldung an das CDN erforderlich):
IBDataset [Delphi 2009] Catastrophic Error

Tatsächlich tritt der Fehler bei mir nur dann nicht mehr auf, wenn der Zeichensatz UNICODE_FSS verwendet wird; UTF8 bzw. kein Zeichensatz führen wie gehabt zum Fehler (auch nach dem Einspielen von Update 1 für D2009)

Das heißt dann wohl wirklich Abschied nehmen von der Kombination Delphi/IBX/Firebird (es sei denn, es kommt noch eine Nachbesserung, aber daran glaube ich nicht). Merkwürdig finde ich es schon - dass es Probleme im Zusammspiel mit FB geben könnte, war zu erwarten, aber das selbst das hauseigene Produkt Interbase davon betroffen ist, überrascht mich sehr.

Gruß aus dem Norden

Udo "Kretabiker" Treichel


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 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