Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1146557855
Nike
2006-05-02 12:17
2006.06.11
Русские буквы в Rave-контролах неверно отображаются


2-1148380907
Ironman83
2006-05-23 14:41
2006.06.11
Литература


15-1147883827
imasd
2006-05-17 20:37
2006.06.11
PHP


2-1148460153
Roman_ln
2006-05-24 12:42
2006.06.11
графика


15-1147334882
TohaNik
2006-05-11 12:08
2006.06.11
ЧМ по хоккею.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский