У меня есть приложение Delphi с TZConnection в режиме AutoCommit (подключение к Firebird 3.0) в глобальном модуле DataModule, это единственное соединение обслуживает все запросы во всех модулях данных приложения.
Но у меня проблемато, что запросы видят только те данные, которые были зафиксированы на этапе подключения, а запросы - не новые / свежие данные, поступающие либо из других экземпляров приложения, либо из других компонентов (например, наборов данных IBX) того же приложения.
TZConnection.Reconnect решает эту проблему, но я не уверен, что произошло с другими открытыми формами во время такого жесткого переподключения.
В большинстве случаев было бы так приятно иметь процедуры TZonnection.CommitRetainment или RollbackRetainment (аналогично IBX TIBTransaction), но TZConnection не имеет таких функций, и даже TZConnection.Commit не работает в режиме AutoCommit (возникает ошибка, что Commit несовместим с режимом AutoCommit).
Итак - чтоЭто лучший способ получения свежих данных с помощью TZConnection.Я был бы рад выполнить некоторую функцию в TZonnection при открытии нового модуля DataModule или по запросу клиента для нового отчета.