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

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

Не регистрируется подключение [IB6.x]


Valkyre ©   (2007-05-26 21:54:00) 

Делаю так, как указано ниже. Но при реальном восстановлении линка продолжаются "попытки подключения", а соединение с БД не устанавливается. В чем может быть проблема?


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;


Valkyre   (2007-05-29 09:32:00) [1]

надо бороться за отказоустойчивость сервера

А если линк пропал в инете?

и зачем тебе еще таймер там понадобился ?
Тупо мигает Label :)


Dilmo   (2007-05-27 13:52:00) [2]

А как выглядит это "не получается" ???
и зачем тебе еще таймер там понадобился ?


sinus   (2007-05-27 11:44:00) [3]

зайди на www.ibase.ru там была статья как обрабатывать разрыв соединения с сервером..
по  теории не надо бороться с разрывом связи, надо бороться за отказоустойчивость сервера


Valkyre   (2007-05-27 09:34:00) [4]

Пишу программу, работающую с СУБД 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;но, к сожалению,
у меня ничего не получается.

Вопрос
Как можно грамотно организовать обработку потери соединения?


Виталий Панасенко(дом)   (2007-05-26 22:40:00) [5]


> Johnmen ©   (26.05.07 22:28) [7]
>
> Нет, не подскажу. Ибо ничего не понял. Это во-первых.
> А во-вторых, не помогаю утопающим, которые сами решили утонуть.
>  Это их священный выбор....
>

згоден


Johnmen   (2007-05-26 22:28:00) [6]

Нет, не подскажу. Ибо ничего не понял. Это во-первых.
А во-вторых, не помогаю утопающим, которые сами решили утонуть. Это их священный выбор....


Valkyre   (2007-05-26 22:25:00) [7]

Говорю ж - не дописал. Время много, спать хочу, проект завтра сдавать, а вот такая вот шиша...

Вы не подскажете, что бы это могло быть? :-[


Johnmen   (2007-05-26 22:24:00) [8]

Замечательно...
Осталось найти несколько разичий. :)))
TestConnect и TestConnected


Valkyre   (2007-05-26 22:17:00) [9]

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:15:00) [10]


> Так яснее?:)

Не очень....
Что тако TestConnect?


Valkyre   (2007-05-26 22:05:00) [11]

TcfmConnectFail - GUI форма
DoClick - процедура ответа на клик по кнопке "OK"
DbConnected - dmGlobal.IbDatabase.TestConnect;

Так яснее?:)


Johnmen   (2007-05-26 21:59:00) [12]

Осталось выяснить, что такое TcfmConnectFail, DoClick, DbConnected и т.д....


Наверх

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