Форум: "Базы";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Внизпроверка: доступна ли БД? Найти похожие ветки
← →
OlegOren (2006-04-18 16:05) [0]как можно проверить есть ли соеденение в настоящий момент с БД с помощи
ADOConnection или ADODataSet?
← →
Ega23 © (2006-04-18 16:07) [1]СУБД?
← →
sniknik © (2006-04-18 16:08) [2]сделать запрос, любой но лучше поменьше.
← →
OlegOren (2006-04-18 16:10) [3]MSSQL
← →
OlegOren (2006-04-18 16:11) [4]sniknik ? но если я попытаюсь сделать запрос у меня выпадет ошибка, т.к. возможно оборвалась связь с БД.
← →
OlegOren (2006-04-18 16:12) [5]ВОт как раз как мне проверить, что связь все еще нормальная(например сетевой кабель не вытащили) и спокойно сделать запрос.
← →
OlegOren (2006-04-18 16:18) [6]Проблема такая, что когда все работает ADOConnection1.Connected = true, а когда обрываеться сетевой кабель значение ADOConnection1.Connected не становиться false. почему? мне самому надо проверять соединение и выстовлять это значение ADOConnection1.Connected как и положено?
← →
Sergey13 © (2006-04-18 16:19) [7]2 [6] OlegOren (18.04.06 16:18)
У тебя обрыв кабеля - обычное явление? По несколько раз в день?
← →
OlegOren (2006-04-18 16:22) [8]не то чтобы обрыв но и гнезда выдергивают потоянно. да и притом этот обрыв происходит не в соседнем кабинете а в 30 км. от меня. Вот и хочу облегчить себе работу.
← →
Sergey13 © (2006-04-18 16:28) [9]2[8] OlegOren (18.04.06 16:22)
>Вот и хочу облегчить себе работу.
А в чем облегчить то?
Обрамляй или все что можно try...except или [2] sniknik © (18.04.06 16:08), т.е. маленький тестовый запрос перед любым ответственным рабочим.
← →
Ega23 © (2006-04-18 16:35) [10]Сделай пинг, что-то типа
Select top 1 * from sysobjects
и выполни.
← →
OlegOren (2006-04-18 16:36) [11]Sergey13 я делаю вот так, но из за чего все началось. в таком коде у меняв строке ADODataSet1.Refresh увеличивается память в оперативке метров на 5 и если это часто делать(например в каком нить мониторе состояния подключения к базе) оперативка
очень быстро кончается.
try
ADODataSet1.Refresh;
except
on E: Exception do
begin
ADOConnection1.Connected := false;
ADODataSet1.Active := false;
end;
end;
← →
Johnmen © (2006-04-18 16:44) [12]Как уже сказали, мониторить соединение надо выполнением лёгкого запроса.
А не рефрешем набора данных....
ЗЫ
> ADOConnection1.Connected := false;
> ADODataSet1.Active := false;
странная последовательность...:)
← →
Sergey13 © (2006-04-18 16:45) [13]2[11] OlegOren (18.04.06 16:36)
А зачем ?
> ADOConnection1.Connected := false;
> ADODataSet1.Active := false;
Тут ИМХО уместно месагу юзеру выдать, мол извини, брат, и закончить приложение.
← →
Ega23 © (2006-04-18 16:46) [14]Мне требовалось выводить иконку состояния работы сервера на экран, я делал так:
1. Запускал отдельный поток, в этом потоке создавал коннект
2. Пинговал базу раз в 5 секунд (см. [10]).
3. Если except - выводил сообщение на экран, мол потеря связи.
← →
OlegOren (2006-04-18 16:50) [15]Sergey13 но можно же раз в минуту долбиться на сервак и проверять есть ли соединение и затем сообщитьпользователю что соединение мол появилось можно работать дальше.
>А зачем ?
>> ADOConnection1.Connected := false;
потому, что это значение не выстолятся(в фалз) при внешнем разрыве соединения ADOConnection1.Connected
← →
OlegOren (2006-04-18 16:51) [16]
> 2. Пинговал базу раз в 5 секунд (см. [10]).
а как ты пинговал ее?
← →
OlegOren (2006-04-18 16:51) [17]
> Ega23 ©
сорри всепонял
← →
Sergey13 © (2006-04-18 16:55) [18]2[15] OlegOren (18.04.06 16:50)
>но можно же раз в минуту долбиться на сервак
Ну и долбись. Я мешаю? 8-)
>потому, что это значение не выстолятся(в фалз) при внешнем разрыве соединения ADOConnection1.Connected
Аналогия - ты пытаешься попрощаться с телефонным собеседником после того, как он бросил трубку.
← →
OlegOren (2006-04-18 17:00) [19]
> Sergey13 ©
но я же не хочу остановить соединение, я пытаюсь прочитать его состояние.
ADOConnection1.Connected - это же свойство, т.е. состояние переменной.
Логично : если нет соединения значит и свойство должно стоять false?
Просто весь долнейший код я основываю на состоянии этой переменной.
← →
Ega23 © (2006-04-18 17:07) [20]
> Логично : если нет соединения значит и свойство должно стоять
> false?
> Просто весь долнейший код я основываю на состоянии этой
> переменной.
Но это же не означает, что сам TADOConnection "долбится" в базу и проверяет своё состояние. И если False, то данное свойство в False ставит.
← →
OlegOren (2006-04-18 17:18) [21]
> Ega23 ©
ясно.
ладно черт с ней с этой базой и соединением этим, не так уж это и важно. домой пошел я... у меня там молодая жена...:-)
с ней все четко const TADOWife.Connected = true
спасибо всем
← →
Sergey13 © (2006-04-19 09:11) [22]2[19] OlegOren (18.04.06 17:00)
> но я же не хочу остановить соединение
Какое? Того, с которым ты работал, уже нет.
Я конечно не спец по мелко-мягким серверам, но это вроде везде так.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.021 c