Вылетает ошибка Out of memory при переборе выбранных записей

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
DelphiN!
Сообщения: 5
Зарегистрирован: 11 авг 2005, 11:22

Вылетает ошибка Out of memory при переборе выбранных записей

Сообщение DelphiN! » 22 дек 2005, 07:37

Код: Выделить всё

 DATA.State.SelectSQL.Text := 'SELECT * FROM STATE where City_ = 'Almaty' and TIME_ >= '''+DateToStr(edtDateS.Date)+' '+edtTimeS.Text+''' and TIME_ <= '''+DateToStr(edtDatePo.Date)+' '+edtTimePo.Time+'''';
 DATA.State.Open;
 DATA.State.First;
 while not DATA.State.Eof do
 begin
   b := false;
   for i := 0 to strl.Count-1 do
     if DATA.CmpStr(DATA.State.FieldByName('City_').AsString+':'+DATA.State.FieldByName('Organization_').AsString,strl.Strings[i ]) then
       b := true;
     if not b then
       strl.Add(DATA.State.FieldByName('City_').AsString+':'+DATA.State.FieldByName('Organization_').AsString);
   DATA.State.Next;
 end;
После очередного вызова DATA.State.Next вылетает Out of memory. Запрос выводит не более 1000000 записей. Как с этим бороться?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 22 дек 2005, 08:13

Не использовать компоненты с кэшированием на клиенте.

DelphiN!
Сообщения: 5
Зарегистрирован: 11 авг 2005, 11:22

Сообщение DelphiN! » 22 дек 2005, 08:22

А с ibDataSet никак?
А какие компоненты не используют кеширование?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 22 дек 2005, 08:34

Нууу... Можешь поставить UniDirectional := true;
Но я бы использовал TIBSQL.

DelphiN!
Сообщения: 5
Зарегистрирован: 11 авг 2005, 11:22

Сообщение DelphiN! » 22 дек 2005, 08:39

А что дает UniDirectional?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 22 дек 2005, 08:46

F1 нажать лень?

DelphiN!
Сообщения: 5
Зарегистрирован: 11 авг 2005, 11:22

Сообщение DelphiN! » 22 дек 2005, 09:39

Уже нажал, спасибо :)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 22 дек 2005, 10:11


Ответить