Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Komponenten für Zugriff auf beliebige Datenbanken (https://www.delphipraxis.net/160396-komponenten-fuer-zugriff-auf-beliebige-datenbanken.html)

Gor1 11. Mai 2011 10:26

Datenbank: beliebig • Version: ? • Zugriff über: ?

Komponenten für Zugriff auf beliebige Datenbanken
 
Hallo,

ich bin auf der Suche nach Datenbank-Zugriffskomponenten, mit denen sich der Zugriff auf möglichst viele verschiedene Datenbanksysteme realisieren lässt (und es soll auch vom Anwender später zur Laufzeit die jeweilige Datenbank erst ausgewählt werden können). Längerfristig wäre auch ein Zugriff auf z.B. Excel-Dateien oder Webservices gewünscht, wobei dafür wohl andere Komponenten zum Einsatz kommen müssten.

Ein zweiter (unabhängiger) Punkt ist die Ersetzung der momentan an einer ganz anderen Stelle verwendeten BDE durch zeitgemäße Komponenten. Hierbei geht es um eine Single-User-Datenbank, die fix in unserem System integriert ist.

Idealerweise sollten für beide Punkte die selben Komponenten zum Einsatz kommen.

Ich habe schon viel im DP-Forum gesucht und habe dabei unter anderem ADO, DBExpress, UniDAC, AnyDAC als mögliche Alternativen für den Datenbank-Zugriff gefunden.
Als Datenbank-System wird häufig Firebird vorgeschlagen.

Leider ist mir aus den gefundenen Beiträgen nicht klar geworden, welche Vor- und Nachteile die oben genannten Komponenten für mein spezielles Szenario haben (ich bin Neuling was Datenbanken angeht).

Welche Vorteile bieten die kommerziellen Komponenten wie UniDAC oder AnyDAC gegenüber den mit Delphi mitgelieferten wie ADO (DBGO) und DBExpress?

Ich verwende momentan Delphi 2009, ein Umstieg auf eine neuere Version wäre aber falls nötig auch denkbar.

Vielen Dank schonmal

tsteinmaurer 11. Mai 2011 11:09

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Hallo,

ich habe in einer kürzlich umgestellten BDE-Anwendung eines Kunden, die SQL-Server verwendet, gute Erfahrung mit AnyDAC gemacht. Die Umstellung von BDE auf AnyDAC geht halbautomatisiert, d.h. ein mitgeliefertes Kommandozeilentool kann für das Replacement von BDE auf AnyDAC Komponenten verwendet werden. Der größere Aufwand steckt dann im Testen, wo dann Probleme auftreten mit TFloatField als persistente Felder für BIGINT Feldern in der Datenbank, oder Problem mit TField.Origin etc.

Da die Umstellung einigermaßen Reibungslos ging und AnyDAC in Bezug auf Alias-Management näher an der BDE ist, sahen wir keine Notwendigkeit in Richtung UniDAC etc. zu sehen.

Ich finde AnyDAC als Multi-DB-Zugriffskompontensammlung sehr gelungen.

lg,
Thomas

mkinzler 11. Mai 2011 11:28

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Die Komponenten von DevArt bieten auch einen Wizard für die Umstellung von der BDE. Zudem finde ich IBDAC sehr gut und würde deshalb zu UniDAC tendieren; habe aber keine Erfahrung mit denen.

nachti1505 11. Mai 2011 13:11

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Egal was du nimmst, beachte unbedingt dass dein Code von der Entscheidung nicht belastet wird. Will sagen, versuche soviel wie möglich von den Zugriffkompos zu verbergen!

Tyrolean 11. Mai 2011 14:19

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Zitat von Gor1
Idealerweise sollten für beide Punkte die selben Komponenten zum Einsatz kommen.

Ich habe schon viel im DP-Forum gesucht und habe dabei unter anderem ADO, DBExpress, UniDAC, AnyDAC als mögliche Alternativen für den Datenbank-Zugriff gefunden.
Als Datenbank-System wird häufig Firebird vorgeschlagen.

Also ich würde hier auch AnyDAC vorschlagen und empfehlen. Dmitry ist wirklich sehr bemüht und kompetent und deckt so ziemlich jede DB ab. Zur Not eben auch über ODBC. Hier kann UniDAC nicht mithalten. Wir verwenden AnyDAC schon lange und sind absolut zufrieden.

mkinzler 11. Mai 2011 14:48

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Hier kann UniDAC nicht mithalten
Inwiefern?

Bernhard Geyer 11. Mai 2011 14:50

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Bei MySQL und Anydac wird man in die GPL-Falle für Closed Source laufen wenn AnyDac immer noch diese zwingend vorraussetz.

Tyrolean 11. Mai 2011 14:54

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Zitat von mkinzler (Beitrag 1100211)
Zitat:

Hier kann UniDAC nicht mithalten
Inwiefern?

Tja, jetzt habe ich nochmals nachgeschaut auf deren Homepage und JETZT können Sie auch ODBC. Das konnten Sie vor einigen Monaten noch nicht.
Also insofern muss ich mich korrigieren und meine Behauptung zurückziehen.

Tyrolean 11. Mai 2011 15:09

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1100212)
Bei MySQL und Anydac wird man in die GPL-Falle für Closed Source laufen wenn AnyDac immer noch diese zwingend vorraussetz.

Du meinst weil AnyDAC die myLIb.DLL benötigt oder was meinst du da genau?

Bernhard Geyer 11. Mai 2011 15:24

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Zitat von Tyrolean (Beitrag 1100218)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1100212)
Bei MySQL und Anydac wird man in die GPL-Falle für Closed Source laufen wenn AnyDac immer noch diese zwingend vorraussetz.

Du meinst weil AnyDAC die myLIb.DLL benötigt oder was meinst du da genau?

Wenn du libMySQL.dll verwendest und ein ClosedSource-Programm hast muss für jede Verteilung die Kosten einer MySQL-Serverinstanz bezahlen.
Oder eine "günstige" Firmenlizenz für 20-30 k€/Jahr kaufen.

tsteinmaurer 11. Mai 2011 15:27

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
@Bernhard: Bzgl. Lizenzierung ist das ein SEHR gutes Argument gegen AnyDAC, wenn UniDAC die MySQL DLL nicht benötigt. Für mich nicht relevant, da ich MySQL nicht im Einsatz habe. Aber das ist auf jeden Fall etwas, was man im Auge behalten muss.

lg,
Thomas

Tyrolean 11. Mai 2011 15:47

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1100221)
Wenn du libMySQL.dll verwendest und ein ClosedSource-Programm hast muss für jede Verteilung die Kosten einer MySQL-Serverinstanz bezahlen.
Oder eine "günstige" Firmenlizenz für 20-30 k€/Jahr kaufen.

Yep. Laut Dmitry soll sich das aber ändern. MySQL ist für mich lizenzmäßig sowieso nicht kapierbar.

kschit 11. Mai 2011 21:51

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
ZeosLib unterstützt auch eine paar Datenbanken. Vorteil dabei: Es ist OpenSource....

mkinzler 11. Mai 2011 21:57

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Zitat von kschit (Beitrag 1100286)
ZeosLib unterstützt auch eine paar Datenbanken. Vorteil dabei: Es ist OpenSource....

Leider fehlt dort aber leider bestimmte Features einzelner DBMS. Z.B. harte Commits.

FredlFesl 12. Mai 2011 06:18

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
ADO geht doch auch, oder nicht? Umsonst isses außerdem und auf jedem Windows-PC installiert.

Gor1 12. Mai 2011 07:09

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Danke für die vielen Antworten.

Nachdem viele UniDAC oder AnyDAC empfehlen, welche Gründe sprechen denn für euch gegen ADO oder DBExpress? Die Performance? Oder sind diese integrierten Alternativen komplizierter zu benutzen? Oder fehlt bei denen etwas am Funktionsumfang gegenüber UniDAC oder AnyDAC und falls ja was?

Bei ZeosLib ist mir aufgefallen, dass es da schon länger keine Updates mehr gab, wird das noch weiterentwickelt?

Bernhard Geyer 12. Mai 2011 07:43

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Zitat von FredlFesl (Beitrag 1100313)
ADO geht doch auch, oder nicht? Umsonst isses außerdem und auf jedem Windows-PC installiert.

ADO ist zwar installiert, aber eigentlich nur der Treiber für den MS SQL Server zu verwenden.
Der Access/JET-Engine ist vor einigen Jahren schon aus der Sicheren ADO-Grundauslieferung rausgefallen (XP Embedded) und wird mittel bis langfristig komplett entsorgt werden. Der Oracle-Provider war schon immer schrottig und vor 1/2 hat MS offiziell auch die Einstellung des Supports/Entwicklung (wenn sie denn welche überhaupt die letzten 5-10 Jahre geleistet haben). Alle anderen Provider müssen erst installiert werden.

mschaefer 12. Mai 2011 08:42

AW: Komponenten für Zugriff auf beliebige Datenbanken
 
Zitat:

Zitat von mkinzler (Beitrag 1100290)
Leider fehlt dort aber leider bestimmte Features einzelner DBMS. Z.B. harte Commits.

Ist schon richtig, kann man aber über close/reopen von TDatabase erreichen.


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