Запрос через OLE - переполнение памяти
Нужна помощь!
Запрашиваю данные через OLE - по суткам, а автоматическом программном режиме (окно Автографо не показывается). На одной машине происходит затык. Долго не могу понять - в чём дело. Решаю посмотреть сам через Автограф - показывает сообщение "переполнение памяти. выберите меньший период" (или что-то вроде того), и кнопку OK. Посмотрел - да, большой файл, 35Мб. Уменбшаю период до 6 часов - всё работает.
НО! В программном режиме это окошко - как бы не видно! Нигде в программе об этом не сигнализируется! ComputingBusy как бы равно 1, ComputingPercents что-то показывают (правда зависают на одном значении - косвенный признак). Я бы повесил такой запрос на таймер, и по таймауту сбрасывал бы вычисление и, указав меньший период - пересчитывал бы - но вот вопрос - как сбросить вычисление? Пробовал простым Disconnect от интерфейса, с удалением экземпляра - но это не выход - много времени на переподключение, потом такая свистопляска впамяти - явно излишество. Есть возможность как-то программно получить это сообщение об ошибке (какой-то признак), "программно нажать ok", или хотя бы перегружать вычисления. А то ведь, когда эта ошибка вылезает - никаким манипуляциями через OLE уже не возможно помочь! Надеюсь проблему понятно описал.
|