Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TestConnection для БД InterBase [D5, FireBird]


RedKat ©   (2003-02-06 10:20:00) 

Кто может подсказать готовую функцию или компоненту с пом. которой можно реализовать тест подключения к БД Interbase (перед самим подключением). Как это сделано в IBExplorer к примеру ?


DarkGreen   (2003-02-06 13:20:00) [1]

Ну и зачем тебе нужен следующий идиотизм???

function TestConnection: Boolean;
begin
Result := True;
try
MY_Database.Connected := True;
except
on E:EInterbaseError do
Result := False;
end;
MY_Database.Connected := False;
end;

Вообще-то можно попробовать подключиться к серверу на 3050 порт используя TTCPIPClient, если удачно, значит сервер жив.
Хотя в любом случае, это глупости


Reindeer Moss Eater   (2003-02-06 10:58:00) [2]

всегда в одном из двух состояний
Моменты смены состояний тоже всегда известны? Тогда зачем проверка?
Неизвестны? А если проверяешь коннект за секунду до перехода сервера в состояние Off?


Max Zyuzin   (2003-02-06 10:52:00) [3]

Да кстати ты думаешь что в IBExplorer или в любой другой утилите это реализовано сильно по другому?


Max Zyuzin   (2003-02-06 10:51:00) [4]

>RedKat © (06.02.03 10:37)
Мне кажется ты хочешь делать абсолютно ненужные телодвижения...
Если таки хочется... ну и сделай сам функцию TestConnection(...)
И проверяй на здоровье... но думаю это все фигня надуманая.


RedKat   (2003-02-06 10:51:00) [5]

К Reindeer Moss Eater
Ну это Вы преувеличиваете ;-) Я не знаю как у Вас, а у меня БД находится всегда в одном из двух состояний On -всегда, Off -аварийный режим работы (все очень быстро-быстро бегают вокруг сервера с задачей его поднять).
Посему когда стартует клиент БД либо уже есть, либо неисправна.
Вот для принятия решения и нужна такая фича ;-)


Reindeer Moss Eater   (2003-02-06 10:40:00) [6]

Тест подключения нужен для того чтобы проверить есть база или нет ?
Умно-умно. Ничего не скажешь.

Выполнил тест-подключение, которое сказало тебе, что сервер жив. А сервер в это время уже начал процесс останова. Или наоборот. Тест-подключение не удалось, потому что сервер в это время не успел до конца загрузиться (Но был готов обслужить клиента спустя 50 ms после завершения тестового коннекта )


RedKat   (2003-02-06 10:37:00) [7]

В IBDataBase можно сделать только Connected :=True....
А потом отлавливать ошибки ;-( Неудобно это как-то.

Тест подключения нужен для того чтобы проверить есть база или нет ? Дело в том что моя прога должна работать с 2-мя БД, при этом одна есть всегда (а если нет -> Shutdown) а вторая может быть, а может и не быть. Посему перед подключением к БД-2 желательно сделать что-то вроде:

if TestConnection("alex:c:\Base\main.gdb") then
begin
...Connected :=True;....
end
else
ShowMessage("Резервная БД не доступна !");
....


Reindeer Moss Eater   (2003-02-06 10:26:00) [8]

А зачем делать тест подключения к БД Interbase (перед самим подключением). ?


Max Zyuzin   (2003-02-06 10:25:00) [9]

IBDatabase


Наверх

Титульная страница Поиск, карта сайта Написать письмо