Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
15-1188845968
DVM
2007-09-03 22:59
2007.09.30
из C++ в Delphi непонятная мне строка. Помогите перевести.


2-1188903449
em240
2007-09-04 14:57
2007.09.30
MSSQL2000+запуск функции из DLL


15-1188915329
savyhinst
2007-09-04 18:15
2007.09.30
Лазарус


15-1188795881
Palladin
2007-09-03 09:04
2007.09.30
Монстроидальный Unit


3-1180017883
Slonyra
2007-05-24 18:44
2007.09.30
Экспорт из DBF в Access





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский