hde hat geschrieben:Sorry, ich will keinem zu Nahe treten, aber ich hab hier das Gefühl, es reden viele über Datenbanken die über Datenbanken genau sowenig wissen, wie Milchkühe übers Eierlegen.
Sorry, ich möchte Dir auch nicht zu nahe treten aber wir sprechen alle von Zugriffen auf Datenbanken, wir haben nur andere Kenntnisstände, es sind wohl immer einige die etwas mehr und einige die etwas weniger wissen, das ist nun mal so in einem Forum. Und genau das ist der Grund für ein Forum!
hde hat geschrieben:Jeder Datenbankhersteller liefert eine API/DLL mit, über die direkt von der jeweiligen Programmsprache aus auf die Datenbank zugegriffen werden kann, aber nicht so einfach mit Pascal sondern mit C++. Wer in C++ ein Prog schreibt für eine spezielle Datenbank braucht weder ODBC noch ADO und auch nicht Zeos. Man bindet einfach die DLL ein und greift direkt zu.
Das macht man als C++ Entwickler auch nur wenn man blöd ist, dann ist man ja abhängig von einer Datenbank! Außerdem gibt es kaum eine API die nicht auch in Pascal anzusprechen ist, oft ist sogar nur ein einfacher Import erforderlich oder eine Konvertierung der C-Header-Files und man muss nicht einmal selbst Hand anlegen.
hde hat geschrieben:Viele aber nicht alle Hersteller liefern auch ODBC-Treiber mit, die den Zugriff weitgehend vereinfachen, aber nur für Windows und es erfordert Einstellungen im OS per ODBC-Administrator auf jedem Client der zugreifen soll. ADO ist etwas ähnliches. Man baucht aber dann den Zugriff von PAscal auf ODBC usw. also Zeos, die Lazarus-Tools oder de BDE bei Delphi.
Wie ich auch schon erwähnt habe benötigt man für ADO nur einen Connectionstring die Benutzung des ODBC-Administrator ist nicht erforderlich. Von ADO hast Du wohl keine Ahnung und mein Beispiel enthält alles für einen Zugriff (CSV-Export), keine einzige Datenbank-Komponente ist unter Pascal erforderlich nur (Windows, ActiveX, Classes, Variants).
hde hat geschrieben:Zeos bietet für alle Datenbanken die MmVisual genannt hat den direkten Zugriff von Lazarus aus auf die jeweilige API/DLL des Datenbankhersteller und liefert tatsächlich für jede dieser Datenbanken Anpassungen mit, außerdem für verschiedene Betriebssysteme und codiert gleichzeitig die diversen Codes um (UTF8, usw.). Auf den Clients sind KEINE Einstellung im OS notwenig, der Zugriff ist schnell und so direkt wie es möglich ist.
hde
Zeos ist sicher eine Tolle Sache ich habe mir die Sourcen gerade mal angesehen und nach ca. 5Minuten wusste ich schon, was ich für Dich noch einmal wiederhole falls Du es überlesen hast, Zeos nutzt wohl auch die ADO Schnittstelle, die Implementierung erinnert mich ein Wenig an die von Delphi. (siehe Verzeichnis /src/dbc/)
Wir sind auf die Anbindung / Zugriff auf Datenbanken erst gekommen um uns nicht direkt für die
"richtige Datenbank" festlegen zu müssen, für alte Hasen ist die richtige Wahl der passenden Datenbank sicher kein Problem, aber für Neulinge ist es die längste Praline der Welt.
Und nun noch einmal was von einer Milchkuh, ich lege jetzt schon seit ca. 12 Jahren Eier mit ADO. ADO ist nicht langsam, zumindest nicht langsamer als Zeos, doch ADO ist durch ActiveX für alle Programmiersprachen die eine OLE-Schnittstelle haben und das haben selbst alle gängigen Scriptsprachen unter Windows, nutzbar.
Nun noch was an Michael TCP/IP ist ein Protokoll zum Datentransfer, die Kommunikation funktioniert also Client-Server, was natürlich bei vielen Serverdatenbanken möglich ist, für den Zugriff auf die Daten wird also ein Client (Treiber) benötigt, der die Befehle und die Rückgabe zur Verfügung stellt. Da leider fast jede Datenbank einen etwas anderen Weg geht gibt es davon einige, die unter Windows von der ADO Schnittstelle gekapselt werden und über diese Schnittstelle ist ein vereinheitlichter Zugriff möglich. Zeos vereinheitlicht nun über die eigene Schnittstelle, das bedeutet wenn man nun von Windows nach Linux wechselt geht das auch, nur nicht unbedingt mit der selben Datenbank. Denn wenn man unter Windows einen MSSQL Server zur Verfügung hat, gibt es den unter Linux nicht. Ob ein Zugriff über Zeos->ADO->ODBC->Datenbank schneller ist als über ADO->ODBC->Datenbank ist bezweifele ich, denn dann müsste Zeos schon optimierend sein, also was für dumme Entwickler, ein Schritt mehr geht selten schneller.
Ich hoffe Ihr anderen im Forum versteht mich nicht falsch, jemand der flexibel sein möchte, also auch zwischen Windows und Linux, der ist bei ADO falsch, aber der sollte sich auch eine passende Datenbank auswählen die unter Windows und Linux existiert denn sonst hilft Zeos auch nichts (wie z.B. bei MSSQL & Access).
Viel Spaß bei der Wahl!