powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TADOStoredProc проблема после потери коннекта с базой
9 сообщений из 9, страница 1 из 1
TADOStoredProc проблема после потери коннекта с базой
    #32131853
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа периодически запускает хранимую процедуру на MSSQL 2000. Но если перезапустить sql сервер, или просто убить процесс, коннект с сервером теряется и вызов ХП через TADOStoredProc выдает ошибку. Я сначала в программе прописываю ConnectionString, а затем просто выполняю ExecProc. Что мне нужно сделать, чтоб автоматически востанавливать коннект с sql?
...
Рейтинг: 0 / 0
TADOStoredProc проблема после потери коннекта с базой
    #32131871
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Известная проблемма. Если ты используешь TADOStoredProc со строкой подключения, то для тебя все равно создается TADOConnection, который и висит открытым, не зная о том, что связь оборвана. Решить проблему можно только при явном использовании TADOConnection. И в случаи потери коннекта делать явно Close/Open.
...
Рейтинг: 0 / 0
TADOStoredProc проблема после потери коннекта с базой
    #32131872
sgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты коннекться прямо перед выполнением процедуры, а если коннекта нет эксепшин или подожди по таймеру и снова коннекться. Может поможет.
...
Рейтинг: 0 / 0
TADOStoredProc проблема после потери коннекта с базой
    #32131915
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что это за штатный режим "перезапуск sql-сервера"? В этом случае править надо в консерватории.
MSSQL должен работать без всяких перезапусков.
...
Рейтинг: 0 / 0
TADOStoredProc проблема после потери коннекта с базой
    #32131942
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Dankov
>А что это за штатный режим "перезапуск sql-сервера"?
А никто и не говорил, что это штатный режим. Просто когда когда его всеж по какой-либо причине перегрузят, сервис, пишущий в него информацию, перестает его видеть. Если забыть перезапустить этот сервис, некоторое время не будет поступать информация, а это очень плохо.
...
Рейтинг: 0 / 0
TADOStoredProc проблема после потери коннекта с базой
    #32132052
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2pkarklin
>Решить проблему можно только при явном использовании TADOConnection. И в случаи потери коннекта делать явно Close/Open.
Можно чуть более подробно, в какой момент мне надо делать Open, а в какие Close? А то у меня это все работает в виде сервиса, что осложняет поиск ошибки.
...
Рейтинг: 0 / 0
TADOStoredProc проблема после потери коннекта с базой
    #32132087
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно чуть более подробно, в какой момент мне надо делать Open, а в какие Close? А то у меня это все работает в виде сервиса, что осложняет поиск ошибки.

В клиентской проге я сделал пункт меню, восстановить подключение. Хотя это можно было и автоматизировать. Можно было написать функцию, типа CheckConnection, где послать через TADOConnection.Execute что-нить на сервер тип SELECT 1, и если возникла ошибка сделать Close/Open. Но только перед тем, как делать Close, надо пробежаться по всем открытым датасетам, запомнить ссылки на них в списке, установить Connection в nil. Сделать Close/Open и снова пробежаться, устоновив Connection.
...
Рейтинг: 0 / 0
TADOStoredProc проблема после потери коннекта с базой
    #32132240
Didos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно еще проще. Взять компонент TIdTCPClient. Сделать IdTCPClient.Connect к SQL серверу (порт надеюсь все знают =)). И ждать события OnDisconnect. Как только событие сработало, значит пора переподключать ADOConnection, т.е. делать ему Close - Open.

Надеюсь я понятно выразился.
Если нет, могу дать листинг.
...
Рейтинг: 0 / 0
TADOStoredProc проблема после потери коннекта с базой
    #32132242
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем все решилось росто. Постоянного коннекта собственно и не надо, постоянное приконнекчивание не напряжно, поэтому поставил у TADOConnection свойство KeepConnection=False, чем проблема и разрешилась.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TADOStoredProc проблема после потери коннекта с базой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]