Вопрос № 85869: Добрый день.
Таблица 98 записей, в каждой записи по 29 записей, из которых меняются 14 ниже перечисленых.
Также по событию OnCalcFields происходит нечто такое для 27 полей каждой записи:
t2.FieldByName('SEv').AsString := FormatFloat('#,#'...
Вопрос № 85.869
Добрый день.
Таблица 98 записей, в каждой записи по 29 записей, из которых меняются 14 ниже перечисленых.
Также по событию OnCalcFields происходит нечто такое для 27 полей каждой записи:
t2.FieldByName('SEv').AsString := FormatFloat('#,#', t2.FieldByName('Ev').AsFloat) + ' шт.';
Все вывожу в DBGrid.
Процессор 800 МГц. Засекал время работы:
если закоментировать код приведенный ниже, расчет проходит за
~1 сек (тоесть расчет без записи в БД)
с кодом внизу, но без обработки OnCalcFields - 11 сек
С обработкой OnCalcFields и записью в таблицу (код внизу) - 22 сек
Подскажите, что можно сделать для ускорения данного процесса, ибо совсем не дело ждать пересчета до 20 сек.
Приложение:
Отправлен: 07.05.2007, 14:17
Вопрос задал: Null (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 7)
Отвечает: Крылов Александр Владимирович
Здравствуйте, Null!
Попробуйте t2.Post вынести из цикла и выполнять после него.
Ответ отправил: Крылов Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 07.05.2007, 14:38 Оценка за ответ: 3 Комментарий оценки: t2.Post убрал совсем.. .разницы нет
Отвечает: LEXASOFT
Здравствуйте, Null!
Попробуйте поставить перед циклом DisableControls, а после него EnableControls.
Ответ отправил: LEXASOFT (статус: 4-ый класс)
Ответ отправлен: 08.05.2007, 00:38 Оценка за ответ: 3 Комментарий оценки: к сожалению, на скорости расчета это не отразилось...