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

Вниз

Некорректное отключение от базы   Найти похожие ветки 

 
Lavrenty ©   (2007-08-16 13:54) [0]

Здравствуйте все! Пытаюсь закрыть клиента без выдачи аварийного сообщения об отсутствии сети, если такое вдруг происходит(отключение от сети во время работы программы).

if IBDB_DFP.Connected then
   IBDB_DFP.Connected := false;

получаю сообщение:

"Unable to complete request network to host "...".
Error writing data to the connection.
Удалённый хост принудительно разорвал существующее подключение."

Программа при этом закрывается только через диспетчер задач.
Если так

if IsNetworkAlive(dwFlags) then
   IBDB_DFP.Connected := false;

то программа закрывается, но после сообщения

"Exception EIBInterBaseError in module InfprmationAllocation.exe at 0012CF64.
Unable to complete request network to host "...".
Error writing data to the connection.
Удалённый хост принудительно разорвал существующее подключение."

Пытаюсь обработать исключение

try
   IBDB_DFP.Connected := false;
 except
   on EIBInterBaseError do
     halt;
end;

то как и во втором варианте. Как закрыть прогамму без выдачи аварийного сообщения?


 
DrPass ©   (2007-08-16 15:18) [1]

Насколько я знаю, корректной обработки обрыва связи в компонентах IBX до сих пор так и нет. Возьми FIBPlus


 
Lavrenty ©   (2007-08-16 15:31) [2]


> DrPass ©   (16.08.07 15:18) [1]

К сожалению это невозможно


 
Anatoly Podgoretsky ©   (2007-08-16 16:00) [3]

> Lavrenty  (16.08.2007 15:31:02)  [2]

Зависит от того, что считать за корректность.


 
Ega23 ©   (2007-08-16 16:31) [4]


> К сожалению это невозможно


Почему?


 
PEAKTOP ©   (2007-08-16 19:12) [5]


//==============================================================================
procedure TApllicationMainForm.ApplicationOnException(Sender :TObject; E: Exception);
var
 ProcessHandle :THandle;
begin
 if(E is EIBError)then
   begin
   if(((E as EIBError).IBErrorCode=isc_network_error)or((E as EIBError).IBErrorCode=isc_lost_db_connection))then
     begin
     Dialogs.MessageDlg("Lost connection to database !", mtError, [mbOk],0);
     ProcessHandle := Windows.OpenProcess(PROCESS_TERMINATE, FALSE, Windows.GetCurrentProcessId);
     Windows.TerminateProcess(ProcessHandle, 4);
     end;
   end;
end;

procedure TApllicationMainForm.FormCreate(Sender :TObject);
begin
 Application.OnException := Self.ApplicationOnException;
end;



Страницы: 1 вся ветка

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
15-1195736070
Кот
2007-11-22 15:54
2007.12.23
css меню


15-1195808646
Ega23
2007-11-23 12:04
2007.12.23
Где сейчас можно купиь 5 лицензий на


2-1196074220
WFS
2007-11-26 13:50
2007.12.23
Дайте плз ссылку на статью о работе Delphi7 с MSWord 2003


15-1195980167
Lang
2007-11-25 11:42
2007.12.23
C++ vs C#


15-1195910267
VladOil
2007-11-24 16:17
2007.12.23
Картинку в RichEdit