![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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