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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2007, 10:02   #1
pushkin42
 
Регистрация: 19.03.2007
Сообщений: 6
Печаль InterBase 7.1 - утечки памяти.

Вопрос по использованию IB7.1 в Borland Developer Studio 2006.

Есть код:

Код:
function Query(const Q: String): TIbDataset;
var iTrn: TIbTransaction;
begin
  if (cfmDesktop<>nil) then begin
    cfmDesktop.imConnect.Show;
    cfmDesktop.imConnect.Update;
  end;
  iTrn := TIbTransaction.Create(nil);
  iTrn.DefaultDatabase := dmGlobal.ibDatabase;
  Result := TIbDataSet.Create(nil);
  Result.Database := dmGlobal.ibDatabase;
  Result.Transaction := iTrn;
  Result.SelectSQL.Text := Q;
  Result.Active :=True;
  if (cfmDesktop<>nil) then cfmDesktop.imConnect.Hide;
end;
После выполнения этого кода выполняется следующий:

Код:
function FinalizeQuery(const iDS: TIbDataSet): Boolean;
begin
  Result := True;
  try
    iDS.Close;
    iDS.Free;
  except
    iDS.Free;
    Result := False;
  end;
end;
Теперь вопрос: Почему после выполнения двух данных процедур, ibserver.exe весит больше и больше с каждым запросом? Например, если делать запрос на 500 записей из одной таблицы, прирост составляет 10-15 Мбайт каждый раз, после этого память не освобождается до тех пор, пока не сделаешь перезагрузку ibserver'у.

Вроде бы все компоненты освобождаю и запросы закрываю...

Подскажите новичку!
pushkin42 вне форума Ответить с цитированием
Старый 19.03.2007, 16:30   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
iTrn := TIbTransaction.Create(nil);
...
Result := TIbDataSet.Create(nil);
А где освобождаем память от всего этого зачем-то динамически создаваемого барахла?
mihali4 вне форума Ответить с цитированием
Старый 21.03.2007, 16:15   #3
pushkin42
 
Регистрация: 19.03.2007
Сообщений: 6
По умолчанию

Пасиб. Я уже разобрался сам :-)
pushkin42 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си и InterBase Edimus Общие вопросы C/C++ 2 23.11.2007 16:32
Проблема с InterBase Михаил Д. БД в Delphi 3 13.07.2007 15:18
InterBase EdNovice БД в Delphi 1 11.05.2007 12:12
InterBase 6.5 san4es БД в Delphi 0 12.12.2006 20:03