Форум: "Начинающим";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c