Wie andere gesagt haben, kann DBX in bestimmten Fällen oder unter bestimmten Umständen die Spitzenleistung erbringen, aber ADO ist die Grundlage für eine sehr große Anzahl von Anwendungen in der Welt, obwohl die Leistung von ADO relativ schlechter sein kann. klar, das heißt nicht "inakzeptabel" arm.
Für mich selbst, und informiert von großen Projekten, an denen ich gearbeitet habe, ist das größte "Problem" mit DBX, dass es, egal wie gut es ist, eine Schlüsselinfrastrukturtechnologie von einem Sprach-/Werkzeugunternehmen ist.
Jeder, der Anwendungen auf der vorherigen BDE-Technologie erstellt hat, wird auf die Störung hinweisen, die verursacht wird, wenn diese Technologie veraltet ist und nicht mehr unterstützt wird. Während keine Technologie gegen die Abwertung durch ihren Provider immun ist, hat ADO eindeutig die Nase vorn, wenn es um die Unterstützung der Industrie geht, die über den Technologieanbieter selbst hinausgeht.
Aus diesem Grund verwende ich selbst jetzt immer ADO. Es muss jedoch nicht immer nur die Verbindungszeichenfolge geändert werden, wenn Sie von einem Datenbanktyp zu einem anderen wechseln. Die Aufrufsyntax für gespeicherte Prozeduren kann von einem ADO-Anbieter zu einem anderen variieren, und Sie müssen immer noch die von Ihnen verwendete SQL-Syntax überwachen, wenn Sie eine Bereitstellung für mehrere verschiedene SQL-Engines planen, wobei die SQL-Unterstützung variieren kann.
Um diese Probleme zu verringern, verwende ich meine eigene Kapselung des ADO-Objektmodells. Diese Einkapselung versucht nicht, das Objektmodell in etwas zu verwandeln, das ADO nicht ähnelt, es legt einfach die Teile von ADO offen, die ich direkt in einem objektpascalfreundlichen (und typsicher) Formular verwenden muss (z. B. Aufzählungstypen und setzt für Konstanten und Flags usw. statt nur Werte, wenn nicht Hunderte von ganzzahligen Konstanten).
Meine Einkapselung kümmert sich auch um einige der geringfügigen Abweichungen in verschiedenen Anbieterverhalten/Anforderungen, wie die zuvor erwähnten Unterschiede in der Aufrufsyntax für gespeicherte Prozeduren.
Ich sollte auch sagen, dass ähnlich wie bei einem anderen Plakat, ich vor langer Zeit verwendet "Daten bewusst Kontrollen", die diesen Ansatz eröffnet. Wenn Sie datensensitive Steuerelemente verwenden möchten oder möchten und ADO verwenden möchten, können Sie ADO nicht direkt verwenden und müssen stattdessen eine Kapselung finden, die ADO durch das VCL-Datasetmodell verfügbar macht.
Wichtige Informationen: mit dem 'rohen ADO API' durch den Import der 'Microsoft ActiveX Data Objects' Typbibliothek erfolgt (ADO_TLB) –