Форум: "Базы";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
ВнизНе регистрируется подключение Найти похожие ветки
← →
Valkyre © (2007-05-26 21:54) [0]Делаю так, как указано ниже. Но при реальном восстановлении линка продолжаются "попытки подключения", а соединение с БД не устанавливается. В чем может быть проблема?
procedure TcfmConnectFail.DoClick(Sender: TObject);
begin
if rbClose.Checked then begin
if not DbConnected then begin
Halt; Exit;
end else ModalResult := mrCancel;
end else begin
Timer1.Enabled := True;
EncartaButton1.Enabled := False;
rbClose.Enabled := False;
rbLock.Enabled := False;
btnClose.Enabled := False;
while not DbConnected do begin
Application.ProcessMessages;
dmGlobal.ibDatabase.Connected := True;
end;
ModalResult := mrCancel;
end;
end;
← →
Johnmen © (2007-05-26 21:59) [1]Осталось выяснить, что такое TcfmConnectFail, DoClick, DbConnected и т.д....
← →
Valkyre © (2007-05-26 22:05) [2]TcfmConnectFail - GUI форма
DoClick - процедура ответа на клик по кнопке "OK"
DbConnected - dmGlobal.IbDatabase.TestConnect;
Так яснее?:)
← →
Johnmen © (2007-05-26 22:15) [3]
> Так яснее?:)
Не очень....
Что тако TestConnect?
← →
Valkyre © (2007-05-26 22:17) [4]
TIBDatabase.TestConnected Method
Tests whether a database is connected.
Class
TIBDatabase
Syntax
[Delphi] function TestConnected(): Boolean;
Description
Use TestConnected to determine whether a database is connected to the server. TestConnected returns true if the connection is good, and false if it is not.
Вот :) Не дописал. Извиняюсь.
← →
Johnmen © (2007-05-26 22:24) [5]Замечательно...
Осталось найти несколько разичий. :)))TestConnect
иTestConnected
← →
Valkyre © (2007-05-26 22:25) [6]Говорю ж - не дописал. Время много, спать хочу, проект завтра сдавать, а вот такая вот шиша...
Вы не подскажете, что бы это могло быть? :-[
← →
Johnmen © (2007-05-26 22:28) [7]Нет, не подскажу. Ибо ничего не понял. Это во-первых.
А во-вторых, не помогаю утопающим, которые сами решили утонуть. Это их священный выбор....
← →
Виталий Панасенко(дом) (2007-05-26 22:40) [8]
> Johnmen © (26.05.07 22:28) [7]
>
> Нет, не подскажу. Ибо ничего не понял. Это во-первых.
> А во-вторых, не помогаю утопающим, которые сами решили утонуть.
> Это их священный выбор....
>
згоден
← →
Valkyre © (2007-05-27 09:34) [9]Пишу программу, работающую с СУБД Firebird (IB6).
Цель на данном этапе
Отработать ситуацию с потерей соединения клиентской части с сервером,
например, при потере линка на сетевой карте или просто падении сервера.
Выполненные шаги
При потере соединения (проверка выполняется методом TIbDatabase.TestConnected)
открывается форма, которая содержит:
- 2 Radiobutton
- 1 TEncartaButton (TButton с графическим оформлением)
- несколько ничего не значащих Label"ов
- TTimer с интервалом 1 секунда
На форме пользователю предлагается выбрать один из двух вариантов:
завершить работу или ожидать восстановления подключения.
В первом случае при нажатии кнопки приложение закрывает соединение
(если это возможно) и завершает работу.
Во втором случае непрерывно выполняется цикл
while not DbConnected do begin
Application.ProcessMessages;
dmGlobal.ibDatabase.Connected := True;
end;
procedure DbConnected: Boolean;
Result := dmGlobal.ibDatabase.TestConnected;
end;
dmGlobal - TDataModule, ibDatabase - TIbDatabase
Метод подключения - TCP
По идее, при выполнении цикла должны выполняться попытки подключения к серверу
методом ibDatabase.Connected := True; но, к сожалению,
у меня ничего не получается.
Вопрос
Как можно грамотно организовать обработку потери соединения?
← →
sinus © (2007-05-27 11:44) [10]зайди на www.ibase.ru там была статья как обрабатывать разрыв соединения с сервером..
по теории не надо бороться с разрывом связи, надо бороться за отказоустойчивость сервера
← →
Dilmo © (2007-05-27 13:52) [11]А как выглядит это "не получается" ???
и зачем тебе еще таймер там понадобился ?
← →
Valkyre © (2007-05-29 09:32) [12]надо бороться за отказоустойчивость сервера
А если линк пропал в инете?
и зачем тебе еще таймер там понадобился ?
Тупо мигает Label :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.047 c