Приложение зависает после определенного количества ошибок.
Добавлено: 19 янв 2006, 15:40
Моделируя реальную ситуацию запускаю в таймере заведомо ошибочный запрос (например, селект из несуществующей таблицы). Помещаю открытие датасета в try ... except ... end. Вот так:
После определенного количества попыток (количество - от 20 до 4000) программа виснет.
Каковы могут быть причины этого, и возможны ли способы борьбы?
Пользуюсь Firebird 1.5.2
Код: Выделить всё
procedure TForm1.Timer1Timer(Sender: TObject);
begin
try
pFIBTransaction1.startTransaction;
pFIBTransaction1.commit;
pFIBDataSet1.open;
except
on e:exception do
begin
Panel1.caption:=inttostr(strtoint(Panel1.caption)+1);
Memo1.lines.Add(e.Message);
pFIBTransaction1.rollback;
end;
end;
end;
Каковы могут быть причины этого, и возможны ли способы борьбы?
Пользуюсь Firebird 1.5.2