Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ZeosLib -- wozu überhaupt? (https://www.delphipraxis.net/128466-zeoslib-wozu-ueberhaupt.html)

Frederika 30. Jan 2009 11:27

Datenbank: ODBC • Version: [sql]select * from ? • Zugriff über: ADO

ZeosLib -- wozu überhaupt?
 
Mir ist es schon jetzt peinlich, aber ich muß einfach noch mal eine absolut dumme Frage stellen. Mir wurde hier ja jetzt ADO für ODBC-Zugriffe empfohlen und das scheint auch wirklich zu passen. Geht erstaunlich einfach, wenn man erst einmal weiß wie. Noch arbeite ich allerdings dran...

Nun lese ich hier auch viel von allen möglichen Datenbankkomponenten im Forum, allen voran sehr oft ZeosLib. Ich habe mir das mal von SourceForge heruntergeladen, aber die Hilfetexte dazu erklären nur eine Unmenge an Komponenten, nicht aber meine Kernfrage: Wozu braucht man das alles, wenn es doch ADO direkt in Delphi gibt?

Was genau verpasse ich gerade? Weswegen und wozu könnte man ZeosLib benötigen? Inwiefern vereinfacht es das Leben?

Sorry für diese Frage, aber ich muß möglichst schnell auf die Höhe der Zeit kommen, was Datenbanken angeht.

freak4fun 30. Jan 2009 11:40

Re: ZeosLib -- wozu überhaupt?
 
ZEOSLIB ist für den Zugriff auf Embedded Datenbanken. Du brauchst also keinen Datanbankserver /-dienst, sondern greifst direkt über die entsprechende dll auf die Datenbank zu. ;)

Zitat:

Zitat von Frederika
Sorry für diese Frage, aber ich muß möglichst schnell auf die Höhe der Zeit kommen, was Datenbanken angeht.

Das klingt ja süß! :zwinker:

Frederika 30. Jan 2009 11:43

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

Zitat von freak4fun
ZEOSLIB ist für den Zugriff auf Embedded Datenbanken. Du brauchst also keinen Datanbankserver /-dienst, sondern greifst direkt über die entsprechende dll auf die Datenbank zu. ;)

OK, in meinem Falle mit erzwungenem ODBC habe ich also tatsächlich gar keinen Bedarf daran, richtig? Das ist schon mal beruhigend.

Warum wird Zeos von so vielen verwendet? Aus Performanzgründen? Warum nehmen nicht fast alle ADO, wenn es doch recht einfach und weit verbreitet ist?

Hansa 30. Jan 2009 11:52

Re: ZeosLib -- wozu überhaupt?
 
Ich sehe da nur einen Grund : kost nix. :stupid:

DeddyH 30. Jan 2009 12:02

Re: ZeosLib -- wozu überhaupt?
 
Ich schlage vor, am Besten selbst nachzulesen: http://zeos.firmos.at/portal.php

Bernhard Geyer 30. Jan 2009 12:03

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

Zitat von Frederika
Warum wird Zeos von so vielen verwendet? Aus Performanzgründen? Warum nehmen nicht fast alle ADO, wenn es doch recht einfach und weit verbreitet ist?

ADO ist nur bei MS SQL Server und Access zu empfehlen oder bei Datenquellen bei denen man nur über ODBC drauf zukommt. Bei DB's wie Oracle oder MySQL gibt es lösungen die ohne jedliche DLL's/Installation auskommen und auch fehlerfreier sind.

Z.B. bei MySQL kann man

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

oder

Anwendung -> Native Zugriffskompos (z.B. DevArt) -> MySQL

verwenden. Wo gibt es wohl weniger Probleme/Installationsaufwand?

mkinzler 30. Jan 2009 12:12

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

ZEOSLIB ist für den Zugriff auf Embedded Datenbanken.
Und auch auf den Zugriff auf nicht embedded SQL-Server.

hoika 30. Jan 2009 12:33

Re: ZeosLib -- wozu überhaupt?
 
Hallo,

Mit Zeos kann man verschiedene DB's mit dem gleichen Code (Komponente) ansprechen.

OK OK

SQL ist nicht gleich SQL, aber theoretisch geht es ;)


Heiko

gsh 30. Jan 2009 12:46

Re: ZeosLib -- wozu überhaupt?
 
Also ich verwende Zeos will ich damit viel unabhängiger von der Datenbank bin.
Den wenn ein Kunde meinen Server nur im kleinen Masstab einsetzen will (1-5 User) dann reicht auf jedenfall eine kleine embedded Datenbank.
Will er den Server für ein großes Netz verwenden kann er auch einen dezentierten SQL-Server mit guter Performance dranhängen.

Außerdem kann der Kunde sich aussuchen welche DB er verwenden möchte. Es kann zwar sein das wegen einem speziellen SQL Befehlen nicht alle SQL-Server funktionieren. Aber im großen und ganzen glaub ich schon dran das dies bei standart SQL Befehlen ohne Probleme funktionieren sollte.

TBx 30. Jan 2009 12:50

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

Zitat von freak4fun
ZEOSLIB ist für den Zugriff auf Embedded Datenbanken.

nicht nur, die Serverlösungen können selbstverständlich auch angesprochen werden.

Zitat:

Zitat von freak4fun
Du brauchst also keinen Datanbankserver /-dienst, sondern greifst direkt über die entsprechende dll auf die Datenbank zu. ;)

Diese Aussage ist schlichtweg falsch!
Zeos nutzt die Zugriffsmöglichkeiten des jeweiligen Datenbanksystemes. Wird eine Firebirddatenbank im Multiuserbetrieb angesprochen, so wird das DB-Server-System von Zeos aus angesprochen. Es gibt natürlich auch die Möglichkeit, embedded zu arbeiten, dann wird die entsprechende dll der FirebirdEmbedded angesprochen.

Damit hier kein falsches Bild aufkommt, ich kann mir nicht einfach irgendeine Datenbankdatei suchen und diese über Zeos ansprechen, ohne dass ich die Zugriffsfunktionen des entsprfechenden DB-Systemes benötige.

Gruß

Thomas

Bernhard Geyer 30. Jan 2009 13:02

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

Zitat von gsh
Aber im großen und ganzen glaub ich schon dran das dies bei standart SQL Befehlen ohne Probleme funktionieren sollte.

Solange du keine Beschränkten Datenmengen (LIMIT/TOP), keine speziellen Datentypen, keine DDL (CREATE TABLE ...) und und und verwendest geht das. Ansonsten mußt du dir auf jedenfall noch was drüber "stricken" (Stichwort: Bridge-Pattern).

gsh 30. Jan 2009 13:10

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von gsh
Aber im großen und ganzen glaub ich schon dran das dies bei standart SQL Befehlen ohne Probleme funktionieren sollte.

Solange du keine Beschränkten Datenmengen (LIMIT/TOP), keine speziellen Datentypen, keine DDL (CREATE TABLE ...) und und und verwendest geht das. Ansonsten mußt du dir auf jedenfall noch was drüber "stricken" (Stichwort: Bridge-Pattern).

Also bei mir ist es so das ich den Server eigentlich für MySQL auslege (Mit dieser teste ich). Wenn jetzt ein kunde eine andere Datenbank einsetzt und bei irgendwas probleme hat weil die andere Datenbank den SQL Befehl nicht verträgt, dann werde ich meistens eine alternativ SQL Abfrage für die eine Datenbank einbauen.

Aber bis jetzt bin ich noch auf keine Probleme mit meinen Befehlen gestossen.

Hansa 30. Jan 2009 18:48

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

Zitat von gsh
Also bei mir ist es so das ich den Server eigentlich für MySQL auslege (Mit dieser teste ich). Wenn jetzt ein kunde eine andere Datenbank einsetzt und bei irgendwas probleme hat weil die andere Datenbank den SQL Befehl nicht verträgt, dann werde ich meistens eine alternativ SQL Abfrage für die eine Datenbank einbauen.

Du denkst anscheinend, mehrere Datenbanken zu "unterstützen", das sei ein Vorteil ? Wie bei Delphi oder was ? Das kann aber schnell auch zum gravierendem Nachteil ausarten. :shock: Du musst eventuell einen gewaltigen Aufwand betreiben um das eigene Programm kompatibel zu halten. Wer soll denn das bezahlen ? Einarbeitung in diverse DB-Versionen etc. Gar nicht zu denken an Optimierung. An ein "Ausreizen" eines gewissen DBMS ist IMHO kaum zu denken. Der einzige Spezialfall, den ich gelten lasse, sind bestehende Datenbestände (mit Fremdprogramm erstellte) und Du sollst ein Zusatzprogramm dafür schreiben.

Eine DB ist auch kein Auto. Da hat man wohl einen Vorteil, sagen zu können : "Solls ein VW sein, ein Opel, ein Mercedes oder was ganz billiges ?". Fast kein Endanwender weiß aber überhaupt was eine Datenbank ist. Alternativen anzubieten sorgt eher für Verunsicherung. Wenn der "PC-Experte aus der Nachbarschaft" dann noch dazu kommt, dann ist das Geschäft eventuell schon versaut. Wenn einem Endanwender schon ganz klar wäre, was er als DB braucht, dann frage ich mich, warum die Frage "Welche Datenbank" in allen Varianten so oft sogar hier in der DP auftaucht.

Sir Rufo 30. Jan 2009 19:54

Re: ZeosLib -- wozu überhaupt?
 
Lieber Hansa, dein Vergleich hinkt ein wenig ... denn der Kunde hat z.B. vielleicht schon ein Datenbanksystem.

Zitat:

Zitat von gsh
Wenn jetzt ein kunde eine andere Datenbank einsetzt und bei irgendwas probleme hat weil die andere Datenbank den SQL Befehl nicht verträgt, dann werde ich meistens eine alternativ SQL Abfrage für die eine Datenbank einbauen.

Was nun?

a) Geschäft nicht machen?
b) Kunde eine neue zusätzliche DB aufreden?

Was viele nicht bedenken, ist das es mit einem DB-System (als Stück Software) alleine doch nicht getan ist.

a) Hardware (Festplatten, RAM, CPU)
b) Sicherung (DB-Treiber für das Backup-System)
c) Monitoring
d) Manpower (für die Wartung)

oder kaufst du dir ein zusätzliches Auto, weil das Autoradio xy nur in einem bestimmten Automodell funktioniert, oder steigst auf dieses Auto komplett um? Vor allem passt das neue Auto gar nicht in die Garage und die Auffahrt kommt es auch nicht mehr rauf.

Zitat:

Zitat von gsh
Aber bis jetzt bin ich noch auf keine Probleme mit meinen Befehlen gestossen.

Und es scheint bislang auch noch ohne viel Pflegeaufwand zu funktionieren, warum also nicht. Zumal man dem Kunden diese Dienstleistung der Anpassung auch immer noch in Rechnung stellen kann.

Sollte weder eine Anpassung der Anwendung (ist dem Kunden zu teuer) oder ein zusätzliches DB-System (Pflege dem Kunden zu aufwändig) in Frage kommen, dann ist das nicht die richtige Anwendung für den Kunden.

Ich fahre auch sehr gerne Aston Martin und die verkaufen mir liebend gerne einen Wagen, aber der passt nicht in meine Garage :mrgreen: also gibt es keinen.

cu

Oliver

gsh 31. Jan 2009 20:20

Re: ZeosLib -- wozu überhaupt?
 
Auch wenn ich hier ganz OT schreibe aber eins muss ich noch klar stellen:
Ich supporte nur MYSQL in der neuesten Version. Wenn der Kunde das Problem mit einer anderen DB meldet und es ein geringer Aufwand es zu beheben (z.b. eine eigene SQL Abfrage für diese DB) dann werde ich es machen. Aber ich werde nie garantieren das die neueste version immer mit jeder DB arbeitet.

Beim rest stimme ich Sir Rufo zu. :zwinker:

Bernhard Geyer 31. Jan 2009 22:24

Re: ZeosLib -- wozu überhaupt?
 
Noch ein Nachteil wenn man den Kunden sein DB-System aufdrängt: Man ist als Lieferant dafür verantwortlich das auch solche "Nebensächlichkeiten" wie Backups, Datensicherheit, ... von einem Bereitgestellt werden. So kann man einfach eine weitere DB in eine bestehende Installation einrichten und gut ist. Backup, ... sind alle schon am laufen (sollte jedenfalls, oder der Admin hat einen wackligen Job). Oder willst DU (Hansa) dafür verantwortlich sein das das Firmennetz ausfällt weil niemand wusste das auf Rechner xy die DB MS SQL Server/MySQL/Oracle... ungepatcht mit Offenen Scheunentoren lief?

TBx 1. Feb 2009 08:26

Re: ZeosLib -- wozu überhaupt?
 
@Bernhard Geyer: Das ist nun doch ein wenig überspitzt. Nur weil ich beim Kunden ein bestimmtes Datenbanksystem voraussetze, bin ich noch lange nicht für selbiges verantwortlich.
Ist das DB-System bein Kunden bereits im Einsatz, ist alles ok, wenn nicht, kläre ich mit dem Kunden, wer die Einrichtung und Wartung übernimmt. Paßt es in den Auftrag und bei mir zeitlich, biete ich es mit an. Ggf. spreche ich auch Empfehlungen für andere FIrmen/Dienstleister aus, dies zu tun. Es kommt auch vor, dass ein MA des Kunden dann für die Wartung der DB ausgebildet wird (ggf. von mir).
Sträflich wäre es eigentlich nur, den Kunden nicht über die Risiken und die Aufgaben des DB-Admins zu informieren. Und das tue ich sowohl dann, wenn mir ein DB-System zur Verfügung gestellt wird als auch, wenn das System für mich/durch mich aufgesetzt wird. Dann liegt die Verantwortung beim Kunden.
Ich denke, hier kann ich sogar für den Kunden wesentlich mehr Effizienz und Sicherheit bieten, da ich das von mir verwendete DB-System eben auch am Besten kenne.

My 2 Cent

Thomas

Bernhard Geyer 1. Feb 2009 10:43

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

Zitat von TBx
@Bernhard Geyer: Das ist nun doch ein wenig überspitzt.

Mag es. Wir haben aber schon Kunden die versuchen jedliche Problem auf einen abzuladen: "Sie haben da was installiert und jetzt geht xyz nicht mehr.". Schlecht ist wenn man nun sowas wie eine DB installiert die alles mögliche mitinstalliert. Da bist du nun erstmal in der Pflicht zu beweisen das es deine Installation nicht schuldig ist. Gut ist wenn man z.B. ein Delphi-App mit XCopy-Fähigkeit hat und damit defintiv nichts am System verändert :-)

Hansa 1. Feb 2009 11:08

Re: ZeosLib -- wozu überhaupt?
 
Zitat:

Zitat von Bernhard Geyer
..Wir haben aber schon Kunden die versuchen jedliche Problem auf einen abzuladen: "Sie haben da was installiert und jetzt geht xyz nicht mehr."...

Ist bekannt (sehr schlimmes schwarzer Peter Prinzip im Zusammenhang mit DAUs :shock: ). Nur : Die DB wird so oder so installiert/kopiert. Was soll es da, zusätzlich dem DAU noch eine ihn völlig überfordernde Auswahl zu lassen : "wählen sie die DB : Interbase 6.5, MySql, MS-SQL, Firebird, postgre, Oracle, Advantage, andere". Wie gesagt, man beachte hier auch die Frage "Welche Datenbank ?" sogar in der DP. Hat jemand KlickTel, Musicmatch oder sonstwas im Einsatz ? Falls ja : welche DB wird dafür verwendet ? Wurde die installiert und wenn ja wohin ? Wer achtet bei MS Office darauf, Access nicht zu installieren ? Bei letzterem wird sogar gerne darauf verwiesen, dass das sowieso auf jedem Rechner ist. 8)


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