Я написал приложение, которое позволяет пользователю определять запрос, запускать его с использованием компонента TADOQuery и сохранять отчет на своем ПК в виде XML-документа (SaveAsFile, передавая pfXML в качестве параметра Format) для автономного просмотра. Это отлично работает.
Что мне теперь нужно сделать, это объединить результаты. Под этим я подразумеваю, что мне нужно получить как минимум два отчета (с одинаковыми полями, так как они используют один и тот же запрос) и объединить их, чтобы создать один отчет. Например:
Скажем, у меня есть запрос, который возвращает список пользователей. Я выполняю этот запрос в «Система A» и «Система B», где Система A и Система B - две отдельные системы. После выполнения запроса в обеих системах у меня есть два отдельных файла отчета, которые я могу загрузить обратно в компонент TADOQuery и затем просмотреть на экране. Однако мне нужно объединить отчеты, поэтому вместо переключения между двумя отчетами я могу одновременно видеть все результаты на экране.
Мне сказали, что я могу сделать это с помощью TClientDataSet, но я относительно новичок в программировании баз данных и не знаю, с чего начать. Я проверил статьи на http://delphi.about.com/od/usedbvcl/a/tclientdataset.htm, но я все еще в неведении, потому что, кажется, ничто не делает именно то, что мне нужно.
Поэтому у меня два вопроса:
1. Является ли использование TClientDataSet лучшим способом для получения двух отдельных наборов результатов и их объединения? Если есть лучший способ сделать это, что это?
2. Если использование TClientDataSet является наилучшим способом сделать это, как именно я поступлю? Как вы переносите данные из TADOQuery в TClientDataSet, а затем обратно? Основной поток обработки должен идти примерно так:
Отчет 1 (LoadFromFile) -> TADOQuery \
ClientDataSet -> TADOQuery -> SaveToFile
Отчет 2 (LoadFromFile) -> TADOQuery /
Вся помощь будет оценена по этому вопросу. Я действительно не знаю, с чего начать!