Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Как избавиться от Too many open files?   Найти похожие ветки 

 
Akmen ©   (2004-04-06 12:21) [0]

Соратники. Прошу руку помощи. У меня в процессе поточного приложения вылезает ерка Too many open files. Я работаю через BDE. Там есть параметр MAXIFILEHANDLES, который можно увеличить однако проблемы это не решает - в итоге прога виснет по той же причине преодолевая барьер MAXIFILEHANDLES. КАК МНЕ ЧИCТИТСЯ В ПРОЦЕССЕ РАБОТЫ ПРОГРАММЫ??? HELP!!! PLEASE !!!!


 
Anatoly Podgoretsky ©   (2004-04-06 12:24) [1]

Не открывать столько, ненужные закрывать.


 
Akmen ©   (2004-04-06 12:28) [2]

Я тут код покапал и вот что нашёл - подвисание идёт на SQL-запросе. Вот текст

 Form1.QueryLC.Active:=False;
 Form1.QueryLC.Close;
 Form1.QueryLC.DataBaseName:= ..........;
 Form1.QueryLC.SQL.Clear;
 Form1.QueryLC.SQL.Add(".................");
 Form1.QueryLC.ExecSQL;
 Form1.QueryLC.Active:=True;

Может надо как-то мыться после этого?


 
KapitanSerg ©   (2004-04-06 12:37) [3]

Чтобы это значило "................."?


 
Ozone ©   (2004-04-06 12:43) [4]

TO Akmen © [2]

А зачем сначала Active := false, а потом еще и Close
(тоже относится и к ExecSQL, Active:=true)

бессмыслица какая-то...


 
KapitanSerg ©   (2004-04-06 12:46) [5]

Вообще хорошо бы почитать текст SQL запроса. Что-то я подозреваю, что он начинается с SELECT, а выполняется ExecSQL!


 
Digitman ©   (2004-04-06 12:51) [6]

Form1.QueryLC.ExecSQL; //здесь ты запускаешь запрос на модификацию НД, и это понятно ..
 Form1.QueryLC.Active:=True; //а это зачем ? что под сим подразумевается ?


 
KapitanSerg ©   (2004-04-06 12:58) [7]

>Digitman ©   (06.04.04 12:51) [6]
Так в том и вопрос - модификация это БД или выборка?


 
Akmen ©   (2004-04-06 13:22) [8]

Это выборка и базы (SELECT).  А Active=True - это необходимость для работы с FieldByName (цапаю инфу из запроса).


 
Рамиль ©   (2004-04-06 15:14) [9]

А ExecSql зачем надо.


 
Desdechado ©   (2004-04-06 16:21) [10]

поставь в config.nt files=200


 
Akmen ©   (2004-04-06 16:25) [11]

Ну, допустим, вместо EXECSQL я поставил OPEN. Однако суть дела от этого не меняется. По прежднему появляются и живут до закрытия проги файлы _QSQL***.DBF. ВОт из-за них и всё вешается, когда они достигают показателя MAXFILEHANDLES. Вот как их высвобождать по ходу работы проги, чтобы они память не грузили ...


 
panov ©   (2004-04-06 20:42) [12]

Form1.QueryLC.DataBaseName:= ..........;

Это что - каждый раз динамически к новой БД подключаешься, или БД одна?


 
KapitanSerg ©   (2004-04-06 21:21) [13]

Дарагой!
Все дело в том, что QueryLC.Active:=False сама вызывает QueryLC.Close. Тоже самое и с QueryLC.Active:=true и QeryLC.Close. Резумирую, ты дважды делаешь одну и ту же операцию.
Что же касается ExecSql, то эта процедура предназначена только для исполнения SQL-модификацмй БД (типа Insert, Update и т.п.)



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
1-1082015657
Курдль
2004-04-15 11:54
2004.05.02
Директивы компиллятора {$IF произвольная_константа = ..}


14-1081765345
Тимохов
2004-04-12 14:22
2004.05.02
BOOL


14-1081353939
DDA
2004-04-07 20:05
2004.05.02
Прикол2


3-1081353520
Gennadiy
2004-04-07 19:58
2004.05.02
Как соеденить два IBQuery


14-1081108210
Виталий
2004-04-04 23:50
2004.05.02
Как набрать с клавиатуры символы с низкими номерами?