Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

Не регистрируется подключение   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
15-1188886052
boriskb
2007-09-04 10:07
2007.09.30
Сумашедший мир


1-1184918084
Makhanev Alexander
2007-07-20 11:54
2007.09.30
Restart сервиса...


2-1188546595
VRSB
2007-08-31 11:49
2007.09.30
Слушатель порта


15-1188459390
NightSkif
2007-08-30 11:36
2007.09.30
FoxPro


1-1184871572
TUser
2007-07-19 22:59
2007.09.30
Turbo Delphi