В начале Delphi люди похвалили поддержку нескольких СУБД в Delphi. Все любили BDE (потому что это был единственный способ сделать это).
Но, глядя на клиентов более чем за последнее десятилетие, я видел устойчивое снижение поддержки нескольких СУБД в своих приложениях.
Стоимость поддержки нескольких СУБД из одного приложения высока.
Не только потому, что вам нужно знать каждую СУБД, но также и потому, что каждая СУБД имеет свой собственный набор особенностей, где вам необходимо адаптироваться на вашем уровне доступа к данным. Они включают не только различия в синтаксисе и базовых типах данных, но также и стратегии оптимизации.
Кроме того, некоторые СУБД работают лучше с ADO, некоторые лучше с прямым подключением (например, пропускают ваш клиент Oracle все вместе).
Наконец, тестирование всех комбинаций вашего программного обеспечения на нескольких СУБД очень интенсивно.
Я участвовал в нескольких проектах, в которых нам пришлось изменить бэкэнд СУБД и/или технологию доступа к данным (от BDE до DBX или от DBX до прямого соединения). Изменение бэкэнд всегда было гораздо более болезненным, чем изменение технологии доступа к данным. Многоуровневые подходы сделали их несколько более легкими, но увеличили степень свободы и, следовательно, усилия по тестированию.
Некоторые из продуктов, которые я вижу, поддерживают мульти-СУБД в приложениях с вертикальным рынком, где конечный клиент уже имеет собственную инфраструктуру СУБД, и приложение должно адаптироваться к этому. Например, в правительственных областях Нидерландов Oracle действительно сильна, но SQL Server также создал достаточно базу пользователей.
Итак, вам нужно подумать о том, какие комбинации СУБД вы хотите поддерживать не только с точки зрения функциональности, но и с точки зрения стоимости.
Если вы придерживаетесь одной СУБД, тогда нет смысла идти на общий уровень доступа к данным, например, BDE, DBX или ADO: он рассчитывает сделать соединение как можно более прямым. Мой опыт научил меня, что эти комбинации работают хорошо:
Надежда это дает вам некоторое представление в возможностях и ограничениях поддержки нескольких СУБД из приложений Delphi.
--jeroen
Важная информация: с помощью 'сырой ADO API' делается путем импорта библиотеки типов 'объектов Microsoft ActiveX Data' (ADO_TLB) –