Frage

Ich bin mit delphi seit Jahren, aber nie für Datenbank-Sachen, aber vor kurzem damit begonnen Erforschung und Erprobung.

Ich muss sagen, ich bin beeindruckt, die meisten Dinge passiert automatisch, ich mit der Hand zu schreiben gewohnt bin in PHP und Python.

Ich werde ein kommerzielles System für einen Freund, (2 Schichten) 5 Anwendercomputer entwickeln, 1 Datenbankserver.

Datenbank-Server wird eine anständige Maschine mit (RAID-1) 2 Festplatten laufen (MySql5.1 oder Postgre oder Firebird, offen für Vorschläge) sein.

ADO

  • Einfach zu bedienen
  • Einfache Bereitstellung (nur mysqlconnector Installer)
  • Je langsamer?

DbExpress

  • Need 4-Dateien versenden [dbxconnections.ini, dbxdrivers.ini, mysqldll, driverdll]
  • Je komplexer (schwieriger zu bedienen)
  • ClientDataSet die Komplexität, sieht aber wirklich nützlich
  • Kein freier Postgre Treiber?

Zeos

  • Einfache Bereitstellung (1 dll)
  • Einfach zu bedienen

Wie Sie können die gewünschten Funktionen zu sehen sind:

  • fast
  • leicht zu bedienen
  • leicht zu implementierende

Ich kann nicht alle in einem realen Szenario testen (Clients, Server), so dass ich hoffe, dass ihr mit Erfahrung mir eine, in der helfen können, zu wählen und warum.

EDIT: Danke an alle, ich glaube, ich mit ADO gehen wird (wahrscheinlich) oder Zeos

Vielen Dank im Voraus
Arthur

War es hilfreich?

Lösung

Ich habe auf vielen kommerziellen stark ausgelasteten Systemen gearbeitet ADO ohne Probleme. Die Bereitstellung ist relativ einfach, da seine im Betriebssystem enthalten. Da es ein so breites Publikum hat, wurden die meisten der großen Probleme identifiziert und korrigiert werden. Hilfe bei der ADO-Verbindung zu erhalten ist sehr einfach. Die Datenbank-Unterstützung ist sehr tief ( connectionstrings.com ), die Motoren zusätzliche Datenbank machen die Unterstützung fast trivial (Sie noch brauchen die Client-Treiber installieren, aber das das gleiche für fast jede Lösung wäre).

Performance nicht viel ein Problem ist, wird es wirklich kommt auf Datenbankarchitektur und Motorauswahl.

Andere Tipps

@arthurprs, für Sie Szenario

  

(2 Schichten) 5 Anwendercomputer, 1> Datenbankserver.

alt text http://www.techsolusa.com/images/firebird -Logo-64.gif Das Firebird RDBMS ist eine sehr gute Option, weil sehr stabil ist , schnell, läuft auf Linux, Windows, und eine Vielzahl von Unix-Plattformen und treffen sich mit Ihnen Anforderungen.

alt text http://d.yimg.com /kq/groups/12858579/homepage/name/homepage.jpg Bezug auf die Komponenten für die Verbindung i

id muss sagen, im eher zufrieden mit NexusDB aber die Kosten für die Client / Server-Versionen möglicherweise nicht wert sein.

es funktioniert Client / Server oder vollständig eingebettet ist, einfach genug, um Sie sowohl in Ihrer Anwendung und zwischen ihnen wechseln haben können, je nach Kunden Bedürfnissen

  • die eingebettete DB ist frei,
  • Client / Server "Zum Preis pro Entwickler" ist AU $ 500
  • Keine Kosten pro installieren.

Oh Yeh und seine in delphi geschrieben;)

Ich würde sagen, mit Firebird zu gehen - ist die am häufigsten verwendete Datenbank-Engine in dem Delphi-Land (siehe hier ). vielleicht für die Verbindung ist besser mit Zeos (kostenlos) oder DBX zu gehen (wenn Sie die Architect Version leisten können - die einzige, die den Firebird-Treiber in ihm hat).

über ADO: Mature Verbindungsschicht aber es wird (für immer - höchstwahrscheinlich) gebunden, um Windows während Delphi Cross-Plattform gehen. Auch ja, es neigt dazu, die langsamer zu sein, weil von vielen Gründen, einschließlich den ODBC-Treiber, die in bestimmten Situationen verwendet werden. Aber in Ihrem Fall natürlich, wie skamradt sagt, ich weiß nicht denkt , dass es so wichtig.

Auch wenn ich die Leute nicht auf die Idee gelesen haben mögen, die beide zu mischen, ich habe ADO-Datenmengen gute Ergebnisse unter Verwendung von als „Anbieter Schicht“, die dann die Daten in TClientDataSets Feeds - so gibt es keinen Grund, warum Sie nicht ClientDataSets verwenden können, wenn nach unten gehen Sie die ADO-Route, wenn Sie finden Sie sie benötigen (und sie sind nützlich).

Ansonsten würde ich den Kommentar Echo, dass ADO ist ein erprobte, vertrauenswürdiger Mechanismus, der nicht überall geht. Ich habe es immer mehr als schnell genug gefunden. Und Konfiguration UDL-Dateien verwendet, ist schön und einfach.

  • dbGo (ADO) ist einfacher zu verwalten, universellere, langsamer
  • ist dbExpress mehr schneller, komplexer zu verwalten, unterstützt weniger des DBMS
  • ZeosDBO einfach zu verwalten, universal wie dbExp, langsam wie dbGo, plattformübergreifende, hat nur wenige zusätzliche Komponenten sind alle Quellen zugänglich

Es gibt nur wenige andere Bibliotheken, die alle oben Zweifel zu lösen, obwohl sie alle Handelsprodukte sind. Aber da bin ich voreingenommen:)

Wir haben postgreSQL mit Devart pg Komponenten mit großem Erfolg in mittelgroßen Datenbank-Anwendungen verwendet. Wir haben mit dieser Kombination etwas begrenzt Benchmarking und fanden es 2-3 x die Geschwindigkeit der Verwendung von ADO etc.

- Datenzugriffskomponenten

Ich bevorzuge auch die Kombination von TClientDataset und ADO. Hatte arbeitete mit ihm in Vergangenheit und ich kann sagen, es ist vertrauensvoll. Die Flexibilität von TClientDataset ist ein großer Gewinn. DBExpress ist auch gut. Eigentlich benutze ich clientdatasets mit so ziemlich jedem Datenzugriffsschicht, die haben ein TDataset ...

- Server

Firebird. Frei und leicht verwendbar von OLEDB (I verwendet mit ODBC) und DBExpress (D2010 + hat nativen DBX-Treiber) - weiß nicht ZEOS, aber ich glaube, dass es zu FB auch verbinden. Skalieren gut zu viele Verbindungen und große Datenbanken. Es gibt Datenbanken Firebird mit 500Gb und viele Benutzer gemeldet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top