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

Вниз

Too many open tables   Найти похожие ветки 

 
Tigra   (2005-12-20 17:55) [0]

Есть приложение, которое может формировать отчет из данных таблиц (отчет несколько замороченный). Делается это на локале при помощи query.execsql. Только select.

Квери в приложении 2шт.

2 раза отчет формируется, на третий выдает ошибку : Too many open tables.

Куда рулить?


 
Anatoly Podgoretsky ©   (2005-12-20 18:19) [1]

Как понимать при "помощи query.execsql. Только select."
Где код?


 
Tigra   (2005-12-20 18:22) [2]

Моя процедура делающая запросы

function TForm1.sql (sql_string:string; act : boolean): boolean;
begin
Result:=True;
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add(sql_string);

try
 Query1.ExecSQL;
except
 Result:=false
end;
if act then Query1.Active:=true;

end;


Ее вызывает много раз в цикле другая процедура:

       Form1.sql("SELECT * FROM oper WHERE D=""+datetostr(DateTimePicker1.Date)+"" AND REESTR="+Edit1.Text+" AND U="+inttostr(form1.user_code)+" AND VAL1=""+val[k]+"" AND VAL2=""+val[l]+"" AND CODE=""+kod_oper[j]+"" AND ((Code_Stran<>"643" OR Code_Stran="") AND VAL1<>"" AND VAL2<>"")",true);


Отрабатывает только пару раз =(


 
umbra ©   (2005-12-20 18:29) [3]

рулить надо в BDE Administrator\System\INIT, параметр MAXFILEHANDLES


 
Плохиш ©   (2005-12-20 18:33) [4]


> try
>  Query1.ExecSQL;
> except
>  Result:=false
> end;
> if act then Query1.Active:=true;

Это ещё, что за порнография?


 
Anatoly Podgoretsky ©   (2005-12-20 18:39) [5]

Tigra   (20.12.05 18:22) [2]
А это как понимать ExecSQL и SELECT, должна быть рантайм ошибка.
Как затем понимать if act then Query1.Active:=true;
Где закрытие старого запроса?


 
Tigra   (2005-12-20 19:36) [6]


> Плохиш ©

Это не порнография, просто если нужны результаты запроса (при select), то делаю его активным, в иных случиях - нет.


> Где закрытие старого запроса?


А его закрывать надо? =) Я не знал =)
query.close?


 
Плохиш ©   (2005-12-20 22:16) [7]


> Tigra   (20.12.05 19:36) [6]
>
> > Плохиш ©
>
> Это не порнография

Может почитаешь для начала чего-нибуть?


 
Tigra   (2005-12-21 08:08) [8]


> Может почитаешь для начала чего-нибуть?

Я читаю =)

По делу ты так ничего и не сказал. А мог бы.


 
ЮЮ ©   (2005-12-21 08:49) [9]

Тогда уж лучше так

if act then
 try
   Query1.Active:=true;
 finally
   Result := Query1.Active;
 end
else
 try
   Query1.ExecSQL;
   Result:=true;
 except
   Result:=false
 end;

Может и впрямь, выполняя ExecSQL для селективного запроса, ты безвозвратно используешь ресурсы БДЕ?


 
ЮЮ ©   (2005-12-21 08:51) [10]

и поубивай временные файлы таблиц-результатов запросов, которые остаются при аварийном завершении программы


 
Tigra   (2005-12-21 09:49) [11]


> ЮЮ ©   (21.12.05 08:49) [9]


> Может и впрямь, выполняя ExecSQL для селективного запроса,
>  ты безвозвратно используешь ресурсы БДЕ?


На сколько понял так и получается. Почитал хелп, понял для SELECT нада OPEN делать. Все зажило. Всем спасибо.



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

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

Наверх




Память: 0.49 MB
Время: 0.023 c
3-1131808344
DimDim
2005-11-12 18:12
2006.01.08
Автоматическая вставка строки в DbGrid (DbGridEh)


2-1135201319
Mischa_M
2005-12-22 00:41
2006.01.08
ProgressBar


4-1130921832
Still Swamp
2005-11-02 11:57
2006.01.08
Как соорудить окошко типа PopUp


14-1134560149
syte_ser78
2005-12-14 14:35
2006.01.08
Прога для вебмастеров


14-1133896573
@BraIN
2005-12-06 22:16
2006.01.08
Ура! Таки-упал жесткий диск :о)