Я использовал kbmMW из Components4Developers , и у него есть абстрактный набор запросов, которые предоставляют макросы и тому подобное для включения / упрощения / кросс-работы с базами данных, но в основном для использования клиентом / сервером. Devart также делает хороший набор кросс-компонентов базы данных - мы используем их SQL Server . Тем не менее, в каждом проекте, который я сделал, я заканчивал тем, что писал определенный набор сценариев SQL для каждой базы данных. Очевидно, что есть простые точки соприкосновения для простых вещей выбора, но наборы функций различных баз данных часто слишком различны, чтобы сделать его легко выполнимым.
Я получаю нечто похожее на ответ @ oodesigner, за исключением того, что мы используем $ ifdef и определяем мои строки SQL в отдельном модуле const.
{$ifdef USE_MSSQL}
QUERY_ONE = 'select blah blah blah...';
{$else}
QUERY_ONE = 'select nah nah nah...';
{$endif}
Тогда в основном блоке простое назначение
SQL.Text := QUERY_ONE;
или
SQL.Text := Format(QUERY_TWO, [some_very_carefully_quoted_stuff_or_use_params]);
Не знаю ничего, что могло бы автоматизировать или проанализировать это. И проблема в том, что вам все еще нужно пройти и проверять каждый запрос , потому что слишком легко ошибиться при конвертации.