Рассказ:
Попробуйте это с Delphi XE ... для моего основного проекта, который сейчас решает эту проблему.
Длинная история:
Я столкнулся с той же проблемой, что и у вас с 3 или более уровнями вложенных наборов данных, когда в Delphi 2010 возникла ошибка на стороне базы данных.
Предыдущая последняя версия, которую я интенсивно использовал, была Delphi 2007 без проблем, поэтому есть вероятность, что плохое поведение было представлено в Delphi 2009 или Delphi 2010.
Я проследил эту проблему до midas.dll на стороне клиента, и это происходит независимо от того, статически ли вы связываете midas с помощью MidasLib. Midas «думает», что пакет, полученный от сервера, искажен и выдает исключение. Это исключение нарушает «нормальный» процесс согласования ошибок, поэтому нет способа попытаться восстановиться после ошибки: OnReconcileError никогда не запускался, и процесс прерывается из-за отсутствия блоков try / исключением внутри этой части VCL.
Я уверен, что это была ошибка, но не в том случае, если это происходит на сервере или на стороне клиента. Когда я работал над созданием проекта, чтобы добавить заявку в службу поддержки, пытаясь уменьшить ее до минимума, случается, Delphi XE был выпущен, и я нахожусь под SA, поэтому я получаю его в последнюю минуту.
Загрузка, установка, настройка ... затем я скомпилировал для поддержки проекта и все работало нормально. Я скомпилировал свой основной проект: тот, где я столкнулся с реальными проблемами с пользователями из-за этого и тем, что я использую, чтобы вызывать исключения в триггерах базы данных и хранимых процедурах из-за проверок последней секунды или изменений состояния / условия. Все работало нормально Пользователь получает значимые сообщения об ошибках, и приложение восстановило его способность выполнять преобразование данных и повторять попытки на лету или спрашивать пользователя, что делать в некоторых обстоятельствах.
Извините , я не нашел обходного пути во время моих попыток диагностировать и сообщить об этой проблеме Embarcadero, возможно, кто-то другой может помочь вам лучше, не предлагая обновить.