у меня есть приложение delphi, которое использует базу данных interbase / firebird. Для просмотра и записи данных я использую палитру компонентов InterBase (IBTable, IBQuery, IBDataset). Я выполняю преобразование своей системы в sqlserver / Oracle, но у меня есть тысячи запросов, которые собираются во время выполнения с помощью инструкций SQL, специфичных для базы данных InterBase / Firebird. Кто-нибудь знает какой-либо компонент или инструмент, который делает команды синтаксического анализа Interbase -> SQL Server или Interbase-> Oracle?
что мне нужно, это что-то вроде:
Var
Parser: TParser;
OutputSql: String;
Begin
Parser := TParser.Create();
Parser.Text := 'SELECT FIRST 10 CITYNAME FROM TBCITY';
if Firebird then
OutPutSql := Parser.ParseTo('SQLSERVER');
if Oracle then
OutPutSql := Parser.ParseTo('ORACLE');
ComponentAccess.Sql.Text := OutPutSql;
...
Результат:
Parser.ParseTo('SQLSERVER');
Будет
'ВЫБЕРИТЕ ТОП-10 НАЗВАНИЙ ГОРОДА ИЗ TBCITY'
А также
Parser.ParseTo('ORACLE');
Будет
'ВЫБРАТЬ НАЗВАНИЕ ГОРОДА ИЗ TBCITY, ГДЕ СТРОКА ‹= 10'