Четверг, 19.06.2025, 01:15
Приветствую Вас Гость | RSS
Меню сайта
fff
  • Индексация
  • Девочки
    Форма входа
    Категории раздела
    Теория алгоритмов [3]
    Теория алгоритмов
    Code Snippets [1]
    Code Snippets
    Все о PHP [20]
    Все о PHP
    Visual C++ [13]
    Visual C++
    WIN32 API [7]
    WIN32 API
    Delphi [72]
    Delphi
    ASP [2]
    ASP
    Java [67]
    Java
    VBScript [6]
    VBScript
    CGI [2]
    CGI
    VRML [2]
    VRML
    PERL [9]
    PERL
    HTML [4]
    HTML
    XML [10]
    XML
    Архив записей

    Статьи по Оптимизации

    ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ

    Главная » Статьи » Программирование » Delphi

    Хитрость OnCalcFields
    Хитрость OnCalcFields
    Событие OncalcFields генерится ОЧЕНЬ часто и может быть необязательным и занимать большое количество времени, например, у вас есть таблица с неким вычисляемым полем, и при каждом редактировании таблицы вызывается следующий код:
    MyCalcField.AsInteger := Table1Field1.AsInteger + 10;

    Теперь, если Вы решили пройти последовательно каждую запись огромной таблицы, вы можете представить, какое количество таких событий будет сгенерировано! Они будут необязательны в случае, если вы сделаете обработку полей в отдельной процедуре.

    Мой совет следующий: выключите генерацию события OnCalcFields, обработайте все поля и снова включите генерацию данного события, к примеру так:
    Procedure TForm1.BigProcessingFunction;
    begin

    Table1.OnCalcFields := nil;

    <Включите любые по сложности вычисления в этом месте!>

    Table1.OnCalcFields := Table1OnCalcFields;

    end;

    Поля не вычисляются в течение времени обработки, которое может быть достаточно велико, но при наличие громоздких вычислений специфического поля (или даже нескольких полей), все вычисляется за один проход!

    Данный метод позволяет исключить необязательный код и может быть использован повсюду, где применяются большие таблицы или сложный алгоритм калькуляции поля. Разница в скорости обработки таблицы довольно ощутима.

    Категория: Delphi | Добавил: Merlin (07.12.2009)
    Просмотров: 433 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: