У меня есть база данных Firebird, которая использует Dialect 1. Некоторые старые приложения Delphi ДОЛЖНЫ иметь ее, используя Dialect 1, иначе некоторые запросы не будут выполнены.Проблема в том, что я использую ColdFusion для связи с базой данных для наших веб-приложений, и для этого нужен Диалект 3.
Есть ли какой-нибудь способ установить диалект на уровне клиентского соединения?Так что мой источник данных ColdFusion может использовать Dialect 3, в то время как старые приложения Delphi все еще могут использовать Dialect 1?
Я пробовал использовать следующее, но оно не работало вообще.
jdbc:firebirdsql:localhost/3050:C:\fbdb\master25.fdb?sql_dialect=3
и когда я сделал это, он полностью изменил диалект на диалект 3, который сломал приложения Delphi.
jdbc:firebirdsql:localhost/3050:C:\fbdb\master25.fdb?set_sql_dialect=3
Есть идеи?Я использую JDBC-драйвер Jaybird для подключения из ColdFusion.
Обновление
Проблема в том, что в Firebird 3.0 все изменилось.В нашей базе данных 2.5 под Диалектом 1 мы храним процедуры, в которых аргументы объявляются как дата.В Firebird 3.0 под диалектом 1 эти хранимые процедуры выдают ошибку о том, что
База данных SQL диалект 1 не поддерживает ссылку на тип данных DATE
Когда мы переключаемся на диалект 3все работает - но тогда наши приложения Delphi ломаются из-за того, что у многих из них есть прямые запросы, где он выбирает столбцы типа даты, которые Firebird 3.0 теперь обрабатывает как TIMESTAMP.Таким образом, вместо возврата к 2018-06-25, например, теперь мы получаем 2018-06-25 23: 59: 59.
Если есть какой-то способ, которым я могу настроить все, чтобы наши приложения Delphi могли общаться какДиалект 1, где также допускается связь источника данных ColdFusion как диалект 3. Это было бы идеально.
Возможно ли это вообще?