Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Welche Komponente oder Weg für Zugriff auf mehrere DBMS (https://www.delphipraxis.net/143871-welche-komponente-oder-weg-fuer-zugriff-auf-mehrere-dbms.html)

RWarnecke 25. Nov 2009 08:44

Datenbank: viele • Zugriff über: ...

Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Hallo zusammen,

ich suche eine Möglichkeit mit wenig Aufwand auf mehrere DBMS zugreifen zu können. Mein Plan ist es auf MySQL, Oracle, Firebird, MS-SQL und Advantage Database Server zu unterstützen.

Ich habe zwei Vorstellungen, wie man das realisieren könnte. Nur ich bin mir nicht ganz sicher welcher der beste Weg ist.

1. Eine oder zwei Komponenten, womit ich alle DBMS - Systeme unterstütze.
2. Für jede DBMS einzelne Komponenten, die auf das jeweilige DBMS zugeschnitten sind und diese einzelnen Zugriffe über die Datenbankmodule steuern.

Jetzt ist meine Frage, gibt es zur ersten Vorstellung überhaupt so eine Komponente und mit welcher der beiden Wege habe ich den wenigstens Aufwand.

DeddyH 25. Nov 2009 08:50

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Von Advantage abgesehen sollten beispielsweise AnyDAC, UniDAC und SQLDirect die genannten DBMS unterstützen.

RWarnecke 25. Nov 2009 09:00

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Hallo Detlef,

hast Du mit einen der Komponenten schon Erfahrungen gesammelt und wenn ja, welche ist das Geld wert und welche nicht ?

Phoenix 25. Nov 2009 09:01

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Zitat:

Zitat von RWarnecke
ich suche eine Möglichkeit mit wenig Aufwand auf mehrere DBMS zugreifen zu können. Mein Plan ist es auf MySQL, Oracle, Firebird, MS-SQL und Advantage Database Server zu unterstützen.

Auch wenns nicht ganz billig ist: http://www.dataabstract.com/

Das erlaubt Dir zusätzlich noch, komplett vom SQL weg zu kommen, egal welche DB dahinter liegt.
Mit dem neuen Relase vom DA Server kannst Du sogar den Server auf eine beliebige Datenbank loslassen und die Clients finden automatisch alle vorhanden Tabellen und bieten diese mit einem RemoteDataset an.

dfried 25. Nov 2009 09:11

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Zitat:

Zitat von Phoenix
Auch wenns nicht ganz billig ist: http://www.dataabstract.com/

Ich finde DataAbstract wirklich auch genial (wir setzen das selbst auch viel ein), wobei man dazusagen muss, dass das sein "ursprüngliches" Problem nicht wirklich löst, eine "Third-Party-Komponente" für den Datenbankzugriff muss er dann trotzdem noch dazukaufen (oder ist AnyDac inzwischen im Lieferumfang von DA enthalten? [Edit: hab grad nachgeschaut, ist NICHT mit drin!!!])

Wir setzen DataAbstract mit SDAC, ODAC, IBDAC und MyDAC ein.

DeddyH 25. Nov 2009 09:13

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Mit Erfahrungen kann ich persönlich leider nicht aufwarten, aber ich kenne niemanden, der bislang über eine der angesprochenen Sammlungen etwas zu meckern hat.

p80286 25. Nov 2009 09:17

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Hallo Rolf,

auch wenn mein Vorschlag exotisch / überholt /altbacken ..... ist
ich nutze ODBC (mit ADO), da liegen die Unterschiede nur im SQL.

Das ändert natürlich nichts an den unterschiedlich Daten(strukturen) aber das kann man ja mit angepassten DataModulen in dcen Griff bekommen.

Gruß
K-H

RWarnecke 25. Nov 2009 09:20

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Zitat:

Zitat von Phoenix
Auch wenns nicht ganz billig ist: http://www.dataabstract.com/

Das DataAbstract hört sich ja wirklich gut an. Nur der Preis hält mich davon ab, da ich noch nicht weiß wieviel mir das Programm nachher einbringt. Im Moment tendiere ich zu AnyDAC, muss mir aber hier nochmals die Produktbeschreibung genauer durchlesen und auch mal die Trail testen.

Edit:
Zitat:

Zitat von p80286
auch wenn mein Vorschlag exotisch / überholt /altbacken ..... ist
ich nutze ODBC (mit ADO), da liegen die Unterschiede nur im SQL.

Das ändert natürlich nichts an den unterschiedlich Daten(strukturen) aber das kann man ja mit angepassten DataModulen in dcen Griff bekommen.

Mit ODBC habe ich noch keinerlei Erfahrungen, wie das ganze funktioniert. Ich habe lediglich mal ODBC genutzt um auf eine Novell Inventar Datenbank zugreifen zu können über Excel. Deshalb werde ich es nicht über ODBC machen, da ich das Programm recht zügig fertigstellen will.

Bernhard Geyer 25. Nov 2009 09:24

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Zitat:

Zitat von p80286
Hallo Rolf,

auch wenn mein Vorschlag exotisch / überholt /altbacken ..... ist
ich nutze ODBC (mit ADO), da liegen die Unterschiede nur im SQL.

Ist nicht nur Altbacken sondern auch teilweise fehlerträchtiger und bei MySQL Problematisch bezüglich Lizenzen

Zugriff auf MySQL mit ODBC:

Anwendung -> ADOExpress -> ADO/OLE DB -> OLE DB for ODBC -> MyODBC -> MySQL-DB

Zugriff "native" über DevArt-Kompos:

Anwendung -> DAC for MySQL -> MySQL-DB


Was ist wohl mit weniger Probleme verbunden?

Bei Oracle kommt noch dazu wenn mann auf deren Treiber aufsetzt das der 64-Bit Oracle-Net Treiber AFAIK nicht mit 32-Apps verwendet werden kann. Und ob der 32-Bit Treiber parallel installiert werden kann ...

Selbst haben wir native Kompos und Kapseln die DB-Unterschiede per Bridge-Pattern.

Phoenix 25. Nov 2009 09:53

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Zitat:

Zitat von RWarnecke
Das DataAbstract hört sich ja wirklich gut an. Nur der Preis hält mich davon ab, da ich noch nicht weiß wieviel mir das Programm nachher einbringt. Im Moment tendiere ich zu AnyDAC, muss mir aber hier nochmals die Produktbeschreibung genauer durchlesen und auch mal die Trail testen.

Natürlich testen. Ich würde nie eine Komponenten unbesehen kaufen. ;-)

DA & AnyDac im Bundle liegt halt schon bei 800 €, DA alleine für Delphi (aber eben ohne AnyDac) bei ziemlich genau 600€. Allerdings kann man mit den Jungs von RemObjects möglicherweise auch über den Preis reden. Anfragen kostet nichts ausser ein bisschen Zeit beim Mail schreiben.

p80286 25. Nov 2009 10:09

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
@Bernhard Geyer

Daß die ODBC-Treiber nicht fehlerfrei sind.. geschenkt. (je nach dem was man braucht nimmt man halt einen anderen)
Die fehlerfreien spezialisierte Komponenten halte ich für ebenso wahrscheinlich.

MySql hab ich leider nicht im Angebot, aber z.Zt. 4 unterschiedliche DBs (MS-SQL / Oracle) da ist für quick'n'dirty ODBC das Mittel (der) meiner Wahl. (bevor ich Komponenten von dem und dem teste...)
Ich steh übrigens auf der anderen, der Kundenseite.

Gruß
K-H

Bernhard Geyer 25. Nov 2009 10:18

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Zitat:

Zitat von p80286
Daß die ODBC-Treiber nicht fehlerfrei sind.. geschenkt. (je nach dem was man braucht nimmt man halt einen anderen)
Die fehlerfreien spezialisierte Komponenten halte ich für ebenso wahrscheinlich.

Die Fehlerwahrscheinlichkeit bei 4 Zwischenschichten ist höher als bei einer.

Zitat:

Zitat von p80286
Ich steh übrigens auf der anderen, der Kundenseite.

Native kompos sind für den Kunden auch bessser.


Lösung mit DevArt-Kompos:

1, Programm per XCopy installieren.
2, Starten
3, Servername und DB-Name eingeben

Fertig


Lösung mit ODBC:

1, Admin suchen der Treiber installieren darf
2, Hoffen das mitgelieferte (falls Treiber mitgeliefert werden) auch auf PC passen (z.B. noch keine Win7-Version)
3, ODBC-Einrichten
4, Programm starten
5, passenden ODBC-Eintrag auswählen.

Und nach der Installation hoffen das durch Treiberinstallation nicht evlt. Seiteneffekte bei andern Treibern auftreten (Hatte ich früher mal das ein aktualiserter ODBC-Treiber den 16-Bit Zugang unter NT lahm gelegt hat.

omata 25. Nov 2009 22:29

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Vielleicht ist Zeos ja auch noch ein Blick wert.

RWarnecke 26. Nov 2009 04:35

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Zitat:

Zitat von omata
Vielleicht ist Zeos ja auch noch ein Blick wert.

Mit Zeos habe ich schonmal probiert, etwas zu realisieren. Hatte dabei einige Hürden zu nehmen. Deshalb suche ich ja nach einem anderen Weg. Ich habe die Zeos auch mal nur eingesetzt für ein DBMS. Die EXE wurde mit Zeos um einiges größer als mit den spezifischen Komponenten. Desweiteren kommt noch hinzu, das Zeos mit der Entwicklung fast immer stark hinterher hinkt und ich zu wenig davon verstehe um mir die Kompos eventuell selber weiter zu erweitern.

Ich werde am Wochenende mal die AnyDAC-Trail Komponenten ausprobieren und testen. Da diese von der Produktbeschreibung und vom Preis her im Moment an Frage kommen.

Edit:
Wenn ich jetzt die Tests mit AnyDAC zum Beispiel gegen Oracle-Express durchführe, dann bekomme ich doch realistische Ergebnisse, so als wenn ich gegen eine richtige Oracle-Datenbank teste oder ?

Bernhard Geyer 26. Nov 2009 07:23

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Zitat:

Zitat von omata
Vielleicht ist Zeos ja auch noch ein Blick wert.

ZEOS ist im Moment problematisch das es noch keine stabile D2009/D2010 (stichwort Unicode) gibt.

RWarnecke 7. Dez 2009 19:37

Re: Welche Komponente oder Weg für Zugriff auf mehrere DBMS
 
Hallo zusammen,

ich habe jetzt mal AnyDAC und UniDAC getestet. Bei AnyDAC bin ich fast vom Stuhl gefallen. Ich habe lediglich nur eine kleine Anwendung mit den folgenden Komponenten aufgebaut :
  • con1: TADConnection;
  • adtrnsctn1: TADTransaction;
  • adqry1: TADQuery;
  • DtaSrc_1: TDataSource;
  • DBGrd_1: TDBGrid;
Die Anwendung hat satte 2,2 MB. Die gleiche Anwendung mit UniDAC hat nur 1,3 MB. Als drittes und letztes habe ich die gleiche Anwendung mit FIBPlus erstellt. Da hat die Anwendung eine Größe von 1,2MB. Leider habe ich das Ganze mit FIBPlus nicht zum Laufen bekommen, weil er die Daten nicht an die DataSource weitergeben wollte. :gruebel:

Mein erstes Fazit ist, die Bedienung un der Einstieg in UniDAC ist einfach und unkompliziert gewesen. Bei AnyDAC habe ich erstmal ein wenig forschen müssen, wie die einzelnen Komponenten zusammen arbeiten (INI-Files u.s.w.). Daraus hat sich mir noch nicht ganz erschlossen, ob ich die INI-Files von AnyDAC wirklich brauche oder nicht. Bei FIBPlus ist das zusammenklicken auch einfach, nur leider habe ich im ersten Anlauf leider keine Möglichkeit gefunden, Daten aus einer Query an ein DBGrid weiterzugeben.


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