S.A arkadaşlar.
Uygulamada çalışırken veritabanının bulunduğu makina ile arada kopma olduğu zaman uygulama bir türlü sonlanmıyor.
Hatayı yakalayıp oluştuğu an uygulamayı sonladırma yoluna gittim yani kopma olayı gerçekleştiğinde application.terminate diyorum bu defa uygulama ekrandan kayboluyor ve görev yöneticisinde hala uygulama çalışır göründüğü için hataları vermeye devam ediyor. uygulamayı hatayı yakaladıktan sonra bir dünya hata vermeden söz dinler şekilde nasıl sonlandırabilirim. çünkü uygulama sonlanırken bile açık bağlantılar kapatılmaya çalışıldığı için hatalar devam ediyor.
Firebird Bağlantı kopması
Firebird Bağlantı kopması
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Re: Firebird Bağlantı kopması
Görev yöneticisinden de kapanması sorunu çözebiliyorsa windowsun "taskkill" uygulamasını program içinden çalıştırarak
uygulamanızı kapatabilirsiniz.
uygulamanızı kapatabilirsiniz.
Re: Firebird Bağlantı kopması
merhaba
application.terminate komutu yerine "halt" komutunu kullanmayı dene.
application.terminate komutu yerine "halt" komutunu kullanmayı dene.
Re: Firebird Bağlantı kopması
Taskkill komutu işe yaramadı. Application.Terminate yerine halt kullandım oda Terminate komutundan farklı davranmadı yine ardı ardına uygulama hata mesajları çıktı ortaya
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Re: Firebird Bağlantı kopması
Arkadaşlar ilginize teşekkür ederim.
Forumda başk birşey ararken ozzyksk arkadaşın 2006 verdiği bir kod işimi gördü kendisine çok teşekkür ederim
bende aynı kodu buraya tekrar veriyorum.
Forumda başk birşey ararken ozzyksk arkadaşın 2006 verdiği bir kod işimi gördü kendisine çok teşekkür ederim
bende aynı kodu buraya tekrar veriyorum.
Kod: Tümünü seç
var
hWindowHandle: HWND;
hprocessID: INTEGER;
processHandle: THandle;
DWResult: DWORD;
begin
hWindowHandle:=FindWindow(nil, 'notepad');
SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);
if isWindow(hWindowHandle) then
begin
// PostMessage(hWindowHandle, WM_QUIT, 0, 0);
{ Get the process identifier for the window}
GetWindowThreadProcessID(hWindowHandle, @hprocessID);
if hprocessID <> 0 then
begin
{ Get the process handle }
processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
False, hprocessID);
if processHandle <> 0 then
begin
{ Terminate the process }
TerminateProcess(processHandle, 0);
CloseHandle(ProcessHandle);
end;
end;
end;
sleep(500);
end;
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;