![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
server time out [D5, MSSQL]
Voland_s © (2003-01-11 17:56:00)При работе с базой вылетает таймаут не подскажет ли кто нибудь каким образом можно сделать так что бы при таймауте программа просто пыталась выполнить запрос еще раз
Voland_s (2003-01-14 10:58:00) [1]Tcs_Query
passm (2003-01-13 15:01:00) [2]Voland_s (13.01.03 14:55)> Что за компонент?
Voland_s (2003-01-13 14:55:00) [3]пасибо а на databaseeror не проще ловить ???
passm (2003-01-13 14:53:00) [4]KSergey © (13.01.03 14:41)> То, что нужно <Voland_s (13.01.03 13:01)>.
KSergey (2003-01-13 14:41:00) [5]> passm © (13.01.03 13:33)
Ловить-то можно, а дальше что?
passm (2003-01-13 13:33:00) [6]Voland_s (13.01.03 13:01)> Лови на Application
type TExceptionEvent = procedure (Sender: TObject; E: Exception) of object;
property OnException: TExceptionEvent;
KSergey (2003-01-13 13:31:00) [7]А кому сейчас легко? ;)
Voland_s (2003-01-13 13:01:00) [8]да но нельзя ли обрабатывать именно ошибку самой базы и каким то образом запускать вылетевшый запрос
потому как у меня около 50 запросов и на каждом ставить обработку исключений...
KSergey (2003-01-13 08:14:00) [9]Ну может что-то такое:
flStop:=False;
while NOT flStop do
begin
try
Data.Open; // или что там вызывает таймаут
flStop:=True;
except
if возникла ошибка не про таймаут then raise;
end;
end;
Либо есть второй вариант: увеличить таймауты.
PS: подумал еще раз и однако фигню напорол. По сути происходит не перезапуск с прерванного места, а запуск заново, но ведь перезапустить с прерванного места то уже и нельзя, т.к. прерывается по таймаутам уже окончательно и бесповоротно... Хотя вопросу ответ пожалуй соответствует.