Я работаю с приложением, которое переключается с файлового хранилища данных на базу данных.Он имеет очень большой объем кода, который написан специально для файловой системы.Чтобы сделать переход, я реализую функциональные возможности, которые будут работать как старая система, и в этом плане план более оптимально использует базу данных в новом коде.
Одна проблема заключается в том, что файловая система часто считывала отдельные записи и многократно читала их для отчетов.Это стало большим количеством запросов к базе данных, что очень медленно.
Идея, которую я пытался выяснить, заключается в использовании двух наборов данных.Один набор данных для извлечения всей таблицы, а другой набор данных для запроса по первой, тем самым уменьшая накладные расходы на связь с сервером базы данных.
Я пытался просмотреть свойство DataSource
TADODataSet
, но для набора данных все еще требуется подключение, и он напрямую запрашивает базу данных, если назначено Connection
.
* 1011Причина, по которой я предпочел бы получить результат в другом наборе данных, а не перемещаться по первому, заключается в том, что в нем уже реализовано достаточное количество логики для эмуляции старой системы.Эта логика основана на наличии набора данных, содержащего только результаты, которые запрашивались в старом интерфейсе.
Функциональность должна поддерживать только чтение данных, а не их запись обратно.
Как я могу использовать один набор данных для предоставления значений для другого набора данных для выбора?
Я использую Delphi 2007 и MSSQL.