Как отследить разрыв соединения с базой(FireBird)?

MerlinWT
Дата: 03.07.2009 08:19:41
Гаджимурадов Рустам,

автор
Универсальность и простота - единственные достоинства этого метода. :)


=)))

Спасибо за помощь.
MerlinWT
Дата: 03.07.2009 08:50:55
Попробовал этот способ.

Вод код:
    try
      QESql.SQL.Text := 'Select 1 From RDB$Database';
      QESql.open;
    except
    begin
      Connection.Dbase.Close;
      Connection.Dbase.Open;
      Connection.DBTrans.StartTransaction;
    end;
    end;
    QESql.SQL := SqlText;
    QESql.Open;

Все равно ошибка вылетает. К тому же если даже взять и тупо переконнектиться

      Connection.Dbase.Close;
      Connection.Dbase.Open;
      Connection.DBTrans.StartTransaction;

На первой строке ошибка, про удаленный хвост.

Интересная ситуация получается. Ни обратиться к базе ни отсоединиться от нее...
debose
Дата: 03.07.2009 13:01:59
MerlinWT
Попробовал этот способ.

Вод код:
    try
      QESql.SQL.Text := 'Select 1 From RDB$Database';
      QESql.open;
    except
    begin
      Connection.Dbase.Close;
      Connection.Dbase.Open;
      Connection.DBTrans.StartTransaction;
    end;
    end;
    QESql.SQL := SqlText;
    QESql.Open;

Все равно ошибка вылетает. К тому же если даже взять и тупо переконнектиться

      Connection.Dbase.Close;
      Connection.Dbase.Open;
      Connection.DBTrans.StartTransaction;

На первой строке ошибка, про удаленный хвост.

Интересная ситуация получается. Ни обратиться к базе ни отсоединиться от нее...


Ibx-ы, устроены так, что после обрыва связи с сервером, любая попытка закрыть коннект будет приводить к куче AV. FibPlus же, напротив, умеет отслеживать потерю связи и даёт возможность корректно её обработать. (AFAIK)
artemana
Дата: 03.07.2009 14:53:12
debose
Ibx-ы, устроены так, что после обрыва связи с сервером, любая попытка закрыть коннект будет приводить к куче AV.

Извини, но ты ерунду написал.
NextMan
Дата: 03.07.2009 15:07:02
MerlinWT
Имеется TIBConnecte - соединение с базой на удаленном сервере. В результате сбоев в сети или работы сервера происходит потеря соединения. При этом свойство TIBConnecte.Connected остается равным True.
При попытке выполнения запроса возникает ошибка "Удаленный хост разорвал соединение..."
Можно как то предотвратить появление таких ошибок?

Что такое "TIBConnecte"?
MerlinWT
Дата: 03.07.2009 15:38:40
автор

FibPlus же, напротив, умеет отслеживать потерю связи


Действительно работает. Первые тесты были пройдены на ура. Посмотрим что будет дальше.

debose, спасибо за наводка ;-)