IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.
Модератор: kdv
-
bill_2000
- Сообщения: 7
- Зарегистрирован: 22 дек 2005, 18:43
Сообщение
bill_2000 » 19 янв 2006, 15:40
Моделируя реальную ситуацию запускаю в таймере заведомо ошибочный запрос (например, селект из несуществующей таблицы). Помещаю открытие датасета в try ... except ... end. Вот так:
Код: Выделить всё
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;
После определенного количества попыток (количество - от 20 до 4000) программа виснет.
Каковы могут быть причины этого, и возможны ли способы борьбы?
Пользуюсь Firebird 1.5.2
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 19 янв 2006, 15:45
commit перед open это сильно, а так вообще, думаю что проблема или с таймером, или с FIBPlus, и к IB/FB отношения не имеет...
-
bill_2000
- Сообщения: 7
- Зарегистрирован: 22 дек 2005, 18:43
Сообщение
bill_2000 » 19 янв 2006, 15:57
А FibPlus не является темой этого форума? Вроде в заголовке он упоминается...
Commit и Open - описался, пардон. На результат не влияет.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 19 янв 2006, 16:52
FIBPlus - это российский продукт, и у него есть вразумительная техподдержка. Если ты этим продуктом пользуешься, почему бы не спросить авторов?
Тем более, ты указал версию FB, которая тут никаким боком, а версию FIBPlus - нет...
Собственно, я не гоню тебя с FIBPlus отсюда,

просто напрямую у разработчиков FIBPlus ответ можно получить быстрее.
p.s. смущает, однако, такая разница (от 20 до 400) в числе ошибок до зависания...
-
DSKalugin
- Сообщения: 212
- Зарегистрирован: 27 окт 2004, 13:39
Сообщение
DSKalugin » 21 янв 2006, 14:38
Мож у таймера интервал достаточно мал и сервер не успевает реагировать на поток ошибок?