Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2014, 13:12   #1
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию Как правильно закрыть ClientDataSet?

Привет!

Этот вариант правильный?
Код:
ClientDataSet.Close;
ClientDataSet.Active:=false;
ClientDataSet.Free;
DataSource.Free;
или можно так?
Код:
ClientDataSet.Free;
DataSource.Free;
или вообще это не обязательно?
bilibian вне форума Ответить с цитированием
Старый 31.08.2014, 13:25   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Close и Active:=False одно и тоже и вполне достаточно, как и для любого датасета. Free полностью уничтожает объект и обычно используется для динамически созданных, если создан в десигн-тайме free не нужен
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.08.2014, 13:38   #3
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Аватар,

Код:
with ClientDataSet1 do begin
    // Добавили поля
    FieldDefs.Clear;
    Fields.Clear;
    FieldDefs.Add('ID', ftAutoInc, 0, False);
    FieldDefs.Add('Поле1', ftString, 20, False);
    FieldDefs.Add('Поле2', ftString, 20, False);

    CreateDataSet();  //создается и активищируется пустой набор данных
end;
Вот так создается, значит free нужен?
bilibian вне форума Ответить с цитированием
Старый 31.08.2014, 13:42   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Это не создается. Создается так
Код:
ClientDataSet1:=TClientDataSet.Create(Self)
А CreateDataSet просто создает и активизирует пустой набор данных заявленной структуры в недрах уже существующего клиентдатасета . Free не нужен
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 31.08.2014 в 13:46.
Аватар вне форума Ответить с цитированием
Старый 31.08.2014, 13:49   #5
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Просто я переживаю об очистке памяти при закрытии проги.

Спасибо!

Последний раз редактировалось bilibian; 31.08.2014 в 14:24.
bilibian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Серверное приложение с TCPServer. Правильно закрыть соединение. ispovedn1k Работа с сетью в Delphi 11 01.03.2013 07:02
Правильно закрыть WinAPI Socket LynXzp Общие вопросы C/C++ 4 19.10.2012 17:22
как закрыть доступ Altinayka Безопасность, Шифрование 2 26.04.2012 10:21
Как закрыть пуск BoT_T Общие вопросы Delphi 4 08.12.2010 15:10
как закрыть программу? Alar Общие вопросы Delphi 0 29.10.2006 20:22