Как уже говорили другие, DBX может иметь преимущество в необработанной производительности в определенных случаях или при определенных обстоятельствах, но ADO является основой для очень большого числа приложений в мире, поэтому, хотя производительность ADO может быть относительно ниже, ясно это не означает «неприемлемо» бедных.
Для меня и, как мне сообщили крупные проекты, над которыми я работал, самая большая «проблема» с DBX заключается в том, что, как бы хорошо это ни было, это ключевая инфраструктурная технология, предоставляемая компанией, специализирующейся на языках и инструментах.
Любой, кто создавал приложения на основе предыдущей технологии BDE, будет свидетельствовать о сбое, вызванном устаревшей технологией, которая больше не поддерживается. Несмотря на то, что ни одна технология не защищена от устаревания ее провайдером, ADO явно имеет преимущество, когда речь заходит о поддержке отрасли, помимо самих поставщиков технологий.
По этой причине я сам сейчас всегда использую ADO. Простое изменение строки подключения - не всегда единственное, о чем нужно беспокоиться при переходе с одного типа базы данных на другой. Синтаксис вызова хранимой процедуры может варьироваться от одного поставщика ADO к другому, и вам все равно придется следить за синтаксисом SQL, который вы используете, если вы собираетесь развертывать на нескольких различных механизмах SQL, где поддержка SQL может отличаться от другой.
Чтобы смягчить эти проблемы, я использую собственную инкапсуляцию объектной модели ADO. Эта инкапсуляция не пытается преобразовать объектную модель во что-то, что не похоже на ADO, она просто предоставляет те части ADO, которые мне нужно использовать напрямую, в более дружественной к ObjectPascal (и «type» безопасной) форме (например, типы enum и наборы для констант, флагов и т. д., а не просто оценки, если не сотни целочисленных констант).
Моя инкапсуляция также учитывает некоторые незначительные различия в поведении / требованиях различных поставщиков, такие как ранее упомянутые различия в синтаксисе вызова хранимых процедур.
Я должен также сказать, что, подобно другому постеру, я слишком давно перестал использовать «элементы управления данными», что открывает этот подход. Если вам нужно или вы хотите использовать элементы управления с учетом данных и хотите использовать ADO, то вы не можете использовать ADO напрямую, а вместо этого должны найти некоторую инкапсуляцию, которая предоставляет ADO через модель набора данных VCL.