![]() |
Datenbank: firebird • Version: 2.5 • Zugriff über: Zeos
Mit welcher Komponente mit Firebird DB verbinden?
Hallo Leute,
welche Komponente empfehlt ihr für Delphi XE4 Prof. - um sich mit einer Firebird 2.5 Datenbank zu verbinden ? (thread save! für ISAPI DLL Anwendung) Hintergrund: Ich verwende momentan die Zeos 7.1.0 beta für Delphi XE4 - bei der 7.1.0 Version musste ich zwar was ändern (siehe unten) um es überhaupt installieren zu können, andere Versionen konnte ich gar nicht installieren - oder wenn´s möglich war, waren im DBGrid keine Datensätze sichtbar ... meine Software (ISAPI - DLL auf einem Apache Server) hängt, sobald ich eine Reportbuilder15 / ppDBPipeline mit einer Datasource verbinde.. Zitat:
Vielen Dank für Tipps und Hinweise :-) Danke Erich Änderungen an ZAbstractRODataset.pas: Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
FireDAC wäre ja mal einen Versuch Wert.
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
UniDAC & Zeos wären zwei weitere Komponenten.
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
@Union ...
Danke für die Info .. aber zum testen, ob Zeos wirklich schuld ist sind 600€ nicht wenig ;-) .. und ich hab keine FireDAC-Trials gefunden für XE4 :-( @RWarnecke: Zeos 7.1 Beta verwende ich grad .. Frage: Weißt du welche ZEOS Version man ohne Fehlermeldungen und Probleme in Delphi XE4 installieren kann ? Delphi XE4 Professional deutsch auf einem Win8 Rechner Danke |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Ich weiß nicht, ob sie unter Delphi XE 4 installierbar sind, aber einen Versuch wäre es wert:
![]() |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Hi,
zumidnest letzte Wochen liefen die UIB unter XE4 noch nicht. Und wegen 600€: Die IBDac kosten definitiv keine 600€ und sind zudem als Trial zu haben, d.h. da ist es recht problemlos möglich zu testen. |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Wurde zwar schon genannt, aber scheinbar überlesen !!!
UniDac , UniDac , UniDac .... kostet zwar ein wenig Geld .... ist es aber auf jeden Fall wert !! Greetz Data |
AW: Mit welcher Komponente mit Firebird DB verbinden?
[QUOTE=DataCool;1222307]
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Natürlich die Professional Version !
![]() 249 € und dafür Support für mehrere DBs !! Lohnt sich meiner Meinung nach auf jeden Fall. Greetz Data |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
allein das wäre mir die Kohle wert. Wenn es wirklich absolut sicher für alle Ewigkeit nur Firebird sein soll, würde ich mich näher mit UIB beschäftigen, ich bin mir zwar gerade nicht sicher ob XE4 schon unterstützt wird, wenn nicht wird es bestimmt zeitnah geschehen. Greetz Data |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Hallo Erich,
wärest du mal hier ![]() Nun bevor man eine Komponente wechselt, sollte man mal prüfen, ob es mit einer Alternative funzt und sich dann Ratschläge einholen. Also wenn du von Zeos weg gehen willst, würde ich in jedem Fall zu FireDac raten. Ist hoch performant in jedem Benchmark nahezu ungeschlagen. Dann wäre noch das Synopse Project. |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
ich würde hier auch für IBDAC mit Firebird plädieren. Ist aus meiner Sicht und in vielen Kundenprojekten die beste Wahl.
noch eine Anmerkung: Als kleiner Softwareanbieter kannst du dich aufhängen, wenn deine Software auf zig Plattformen läuft, weil du dann wahlweise von allen Plattformen nur das benutzen kannst, was alle können und damit nirgendwo wirklich performant sein wirst oder alternativ für jede Plattform das ganze Datenbankdesign noch mal machen kannst. Diese Pseudo Multi Database Layer im Client sorgen meistens dafür, das du Probleme lösen musst, von denen man keine Ahnung hat. Indexstrukturen, Datentypen, Funktionen des Optimierers und generelle SQL Kompatibilität solltest du nicht ignorieren. Ob du da die Macken von 10 unterschiedlichen Plattformen kennenlernen willst oder dich auf eine Plattform konzentrierst, bei der du zumindest die wichtigsten Dinge kennst, macht für kleine Softwarehäuser eine riesengroßen Unterschied. Oracle oder MS SQL Spezi wird man nicht durch 2 Minuten im Internet surfen. Das kann aber noch viel gefährlicher werden .... Wenn dir dann ein ein Mitarbeiter des Kunden auf dem Oracle Server einen Materialized View mit On Commit erstellt und in der nächsten Nacht bei Datenabgleich deiner Software der komplette Datenbankserver lahm liegt, der Kunde dich panisch morgens um 7 anruft, weil das komplette Unternehmen mit hunderten Mitarbeitern still steht und deine Software eindeutig auf Basis der Logs dafür verantortlich ist, dann würdest du dich freuen, nichts mit derem zentralen Datenbanksystem gemacht zu haben. Der Kunde selbst schwört Stein und Bein, nichts verändert zu haben und der sogenannte Oracle DB Admin hat leider auch keine Ahnung, was das Problem ist und schon gar nicht, was Materialized Views sind und warum die mit on Commit Probleme machen könnten, weil das bei seinem VHS Kurs leider nicht dran war. Man glaubt gar nicht, was für Flachpfeifen da teilweise sehr verantwortungsvolle Positionen bekleiden, weil ja unter den Blinden der Einäugige König ist. Wenn der Kunde dir dann auf mehrfache Anforderung das Oracle Fehler Protokoll sendet, weil du an der Software seit Monaten nichts mehr geändert hast, dir also keine schuld bewusst bist, dir dann auf den ersten Blick die Fehlermeldungen zum Materialized View auffallen sollten, dann hast du Glück gehabt, das du den Kunde noch mal auf den Pott setzen kannst und ihm zufällig doch einfällt, das er da was an einem View verändert hat. Alternativ kannst du auch wegen eventueller Schadensersatzforderungen deine Laden gleich zusperren und Hartz4 beantragen. Die Story ist nicht ausgedacht, sondern real so passiert bei einem französischen Konzern mit deutschen Filialen, für den wir eine Software erstellt haben. Da tanzten schon der erste Manager mit französischem Akzent in Dreieck und wurde ganz still, als der wirklich schuldige im eigenen Haus saß. Fazit: Mehrere Plattformen zu unterstützen ist nicht immer nur ein Vorteil, sondern manchmal auch brandgefährlich, wenn nicht wirklich auf jeder Plattform 100% fit ist. Für kleine Softwarehersteller ist es unmöglich, auf jeder Datenbankplattform 100% fit zu ein, daher sollte man immer die angeblichen Vorteile im Marketing (multiplattformfähig ...) gegen die Gefahren abwiegen. Multiplattform ist nicht per se besser als single plattform ..... |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
Zitat:
Wenn ich eine Anwendung hätte, die auf mehreren Plattformen laufen soll, dann hätte ich auch den Umsatz, um mir eine entsprechende Lösung (RemObjects?) zu kaufen, bzw. würde ich das finanzielle Risiko eingehen, hier zu investieren. Ich habe mich z.B. auf MSSQL eingeschossen. Firebird wäre auch gegangen, aber es war nun einmal SQL-Server von Microsoft. Ich lerne immer mehr, bin mittlerweile halber Spezialist und programmiere daher hochperformante Anwendungen. Nicht, weil die Komponenten so toll sind (mir reicht ADO dicke), sondern weil ich mich mit dem Server mittlerweile so gut auskenne, das ich für so ziemlich jedes Performanceproblem DB-Seitig eine schnelle Lösung finde. Also: Datenbank aussuchen, Irgendwelche halbwegs bugfreien Komponenten mit Grundfunktionalität nehmen und Erfahrungen sammeln. |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
\src\Zeos.inc öffnen
alle nicht Interbase defines wie ENABLE_MYSQL kommentieren und tada.. Zeos kann nur noch FireBird handlen.. |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Hi,
Ihr habt alle recht, wenn Ihr wie z.B. Hansa sagt "Support für mehrere DBs gleichzeitig, kann nie das Optimum sein" das unterschreibe ich auch sofort zu 100% . Genauso habt Ihr Recht das man sich am besten vor Projektstart auf eine DB festlegt und dann für diese DB direkt entwickelt. Mache ich bei meinen Projekten eigentlich auch immer so. Entwickelt man allerdings Standard-Software oder eine Software die irgendwann "Standard-Software" werden soll sieht das ganze in meinen Augen etwas anders aus. Bsp.: Ein früherer Arbeitgeber von mir hat Software-Produkte im Pflegebereich entwickelt, Zielgruppe ist breit gefächert vom kleinen Pflegedienst bis hin zur großen Uni-Klinik. Der kleine Pflegedienst war/ist froh mit Firebird keine extra Lizenz Kosten für die Datenbank zu haben. Bei den Uni-Kliniken hingegen ist zu 95% schon einen "riesen" DB-Server im Haus vorhanden(MsSQL oder Oracle) und die Kauf-Entscheider fragen gezielt nach ob das schon vorhandene DB-System unterstützt wird. Keine Unterstützung des vorhandenen DB-Systems = Produkt ist direkt aus dem Rennen. ..... Wenn ich mir jetzt IBDAC und UniDAC(beide von DevArt) anschaue, Komponenten vergleiche .... Dann wage ich mal die Vermutung zu äußern das UniDac einfach einen Abstrakten Wrapper auf Ihre einzelnen Produkte(ODAC, SDAC, MyDAC, IBDAC, PgDAC, LiteDAC) liefert und somit der Zugriff selber wahrscheinlich sogar die selbe Codebasis hat, deshalb sollte es in meinen Augen keinen großen Geschwindigkeitsunterschied geben und die Verwendung von UniDac nur eine zusätzliche Option bieten die DB zu wechseln, WENN man es aus irgendwelchen Gründen muss. Sollte ich bei der Geschwindigkeitsaussage falsch liegen, werde ich mir für mein nächstes Projekt wohl dann noch IBDac kaufen ..., aber das werde ich bei Gelegenheit mal in Ruhe mit der Trial Version austesten. Greeetz Data |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
Der DB Server des Endkunden wird als Mirror für die Daten in Firebird benutzt. Durch einfache Scripte werden die relevanten Daten des Firebirdservers in das DBSystem des Kunden übertragen, via Trigger, Eventalerter, ibeblock und ODBC geht das sogar in nahezu Echtzeit. Der Firebird Server wird in disem Fall als Application Server betrachtet, der zwar ganz nebenbei auch SQL kann und auch Daten speichern kann, das interessiert den Kaufentscheider aber relativ selten, da ja sein Non Plus Ultra Datenbanksystem ja von der Software und dessen Appserver als Storage benutzt wird. Den fertigen Firebirdbasierenden Appserver liefert man als fertige VM und der Kunde nennt euch nur die Zugangsdaten zu seiner DB und schon ist alles tuffi .... Das funktioniert so übrigens wirklich, haben mehrere Kunden von uns Ihren Kunden genau mit dieser Argumentationskette so umgesetzt. Das der verantwortliche sich in die Hose pinkelt, wenn irgendeine Software mal nicht auf seiner bevorzugten DB läuft und er deswegen glaubt, das er ständig Datenverluste hätte, kennt man ja. Es gibt aber auch gute Argumente dafür, alle Daten in dem zentralen Hobel zu haben, wenn auch nur als Live Kopie, z.B. Datawarehouse und Reporting. Da würde ich auch nicht die Daten aus dutzenden Quellen zusammensuchen wollen. Das ist aber mit o.a. Lösung argumentierbar. Bei kleinen Kunden und kleinen Projekten hat man das Projekt sowieso eher selten, aber wenn du deine Firebird basierende Anwendung, de nur deswegen so schnell ist, weil du auch die Firebird spezifischen Features nutzt (SP usw.) und diese dann trotzdem dem Kunden gegenüber mit dem Zusatz "dedizierter Appserver VM wird mitgeliefert, unterstützte DB Plattform MSSQL,ORACLE,DB2, .... " Das mal hier so als Hinweis unter uns Pastorentöchtern .... Immer nicht vergessen: Leg mal mit deiner Software den zentralen DB Cluster der Klinik lahm, das geht schneller als man denkt Ich würde da doch lieber nur meine eigene VM lahmlegen, da ich die ja auch gut kenne .... Und auf der Schnittstelle zur KundenDB laufen eh nur Insert/Updates/Deletes in der einfachsten Form |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Hi,
Zitat:
Ich vermute der Unterschied von UniDac zu IBDac dürfte marginal sein. Viel wichtiger ist hier die Unterstützung von DB-spezifischen Features um die DB auszureizen. Und woher die MultiDB-Unterstützung kommt? Sollte doch klar sein, wenn man eine RAD-IDE hat (Stichwort Klicki-Bunti "... und außerdem können wir mit 15 Datenbanksystemen...."). Funktioniert irgendwie, aber bei keiner DB so richtig. |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
![]() Was sollte sich da widersprechen? Und auch noch "gewaltig"? Ich jedenfalls kann Lemmy's Ausführungen nicht nur nachvollziehen, sondern ihnen auch zustimmen: Wenn man sich hauptsächlich mit einem DBMS befaßt, lernt man dieses besser kennen als wenn sich man ständig mit verschiedenen DBMS auseinandersetzen muß. Seine Parodie der Reklame für eine bestimmte IDE bringt es auf den Punkt: Was nützt es, wenn mitgelieferte DB-Komponenten zwar irgendwie Kontakt zu zahlreichen DBMS anpreisen, in der Praxis aber unter Fehlern und Performance-Einbrüchen leiden? |
AW: Mit welcher Komponente mit Firebird DB verbinden?
Zitat:
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Wobei der Einsatz von Multidatenbank-Komponenten per se nicht unperformant sein muss. UniDAC und FireDAC implementieren auch nicht nur den gemeinsamen Nenner.
|
AW: Mit welcher Komponente mit Firebird DB verbinden?
Ich glaube, hier werden zwei Use Cases miteinander vermengt:
1. Implementierung einer konkreten Anwendung. Hier ist es für 99% der Anwender sinnvoller, sich auf eine DB einzuschießen. Die individuelle Implementierung irgendwelcher Speziallösungen kann vielleicht für eine bestimmte DB gar nicht oder nur mit Klimmzügen suboptimal möglich sein. Paradebeispiel 'bulk updates' (eigentlich ein ETL-Prozess). Geht mal so, mal so und mal gar nicht (performant). Da kommt man um individuelle Lösungen gar nicht drum herum und muss die unterstützten DB einschränken oder für eine bestimmte DB eine Schrottlösung anbieten. 2. Implementierung eines Dataaccess-Layers. Hier werden 'einfach' die unterschiedlichen DB-Protokolle vereinheitlicht. Eine performante Umsetzung ist hier viel einfacher, denn es müssen nur Basistechnologien (Konnektieren, Befehle abschicken, Daten Empfangen, Fehlerbehandlung) unter einen Hut gebracht werden. bulk updates gehören imho bisher jedenfalls nicht dazu (aus genannten Gründen). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 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 by Thomas Breitkreuz