Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как пересчитать все вычисляемые поля (Calculated fields) без переоткрытия TDataSet

Delphi , Базы данных , Поля

Как пересчитать все вычисляемые поля (Calculated fields) без переоткрытия TDataSet

Автор: Nomadic


Resync( [rmExact, rmCenter] ); 

Here's the translation of the text into Russian:

Вопрос о расчетных полях в TDataSet! Метод Resync используется для недопустимости кэшей для полей данных TDataSet. Однако, он только недопустим кэш для полей, которые не являются расчетными полями. Для повторного расчета всех расчетных полей без reopen TDataSet можно использовать следующий подход: 1. Создайте временный копию вашего TDataSet:

var
  TempDS: TDataset;
begin
  TempDS := MyDataset.Clone;
end;
  1. Используйте метод Resync на временном датасете для недопустимости всех кэшей:
TempDS.Resync;
  1. Теперь вы можете использовать метод CalcFields для повторного расчета всех расчетных полей в временном датасете:
TempDS.CalcFields;
  1. Наконец, скопируйте повторно рассчитанные значения из временного датасета обратно в ваш оригинальный датасет:
MyDataset.Assign(TempDS);

Вот полный код:

var
  TempDS: TDataset;
begin
  TempDS := MyDataset.Clone;
  TempDS.Resync;
  TempDS.CalcFields;
  MyDataset.Assign(TempDS);
end.

Этот подход обеспечивает повторное расчет всех расчетных полей без reopen TDataSet. Заметим, что это код предполагает, что MyDataset - это экземпляр класса, который наследуется от TDataSet. Если ваш датасет не является этого типа, вам может потребоваться соответствующая коррекция кода. Надеюсь, это поможет! Пожалуйста, дайте мне знать, если у вас есть какие-либо дальнейшие вопросы.

Для пересчета всех вычисляемых полей в TDataSet без его переоткрытия можно использовать метод Resync с параметрами rmExact и rmCenter.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Поля ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:13:20/0.0048110485076904/1