![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка ошибки в TADOCommand
Int23 © (2007-10-24 15:16:00)Создаю TADOCommand, пытаюсь вызвать ХП. В процедуре есть транзакция. В момент выполнения ХП удаляю в СКЛ Сервере процесс пользователя с помощью kill ProcID. В клиент (в событие OnExecuteComplete у TADOConnection) приходит текст ошибки "Неопознанная ошибка". Я её обработал. Затем пытаюсь программно создать класс TADOCommand и присвоить ему ранее использованое соединение. При попытки запустить ХП выдаёт ошибку с текстом '[DBNETLIB][ConnectionWrite (send()).]General network error. Check your network documentation.' Если же заново создать ещё компонент TADOCommand и запустить ХП, то всё ОК. Вот возник вопрос. После обработки ошибки "Неопознанная ошибка", как сделать чтобы не выдавало "General network error". Я для соединения сделал Close и Open. Не помогло
ЮЮ (2007-10-25 06:44:00) [1]> Если же заново создать ещё компонент TADOCommand и запустить
> ХП, то всё ОК
Вот и создавай всякий раз для выполнения и уничтожай после.
Это может быть и ошибкой сервера. Одна из таких приводила у меня к таким невероятным последствиям, при повторном использовании TADOCommand (после ошибки в рамках транзвкции), что только этот метод и помог.
Int23 (2007-10-24 16:34:00) [2]А если вопрос переформулировать так. После первой ошибки почему приходит вторая? Как это обойти?
Правильный_Вася (2007-10-24 16:05:00) [3]1. мертвые блокировки в нормальных программах не появляются, лечить нужно причину
2. в ситуации убиения сессии вполне можно и перезайти в программу
Int23 (2007-10-24 15:35:00) [4]затем, что бывают ситуации когда появилась мёртвая блокировка и необходимо вручную удалить процесс с скл сервера.
Правильный_Вася (2007-10-24 15:27:00) [5]зачем эти извращения?