Delphi Connection Kopma Durumu Hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen adelphiforumz »

S.A.

Bir uygulamadaki ADOConnection bağlantısı eğer makina uyku moduna geçerse yada network geçici bir süre kesilip tekrar gelir ise kopuyor.
uygulamada bulunan DataModule içerisine TApplicationEvents nesnesi ekliyorum ve OnException Events içerisinde E.ClassType nesnesinin
kontrollerini yapaak bağlantı kopmuş ise yeniden bağlantıyı aşağıdaki şekilde tekrarlıyorum
ADOConn.Close;
ADOConn.Connected := False;
ADOConn.Connected := True;

bağlantı bir türlü başarılı olamıyor.

Fakat ekran üzerine bir Database bağlantısını yenilemek için buton ekliyorum ve butonun altına yukarıdaki aynı ifadeleri yazdığımda bağlantı bu sefer başarılı oluyor.

Butonun altındaki ifade ile Application Event altında aynı kod neden farklı şekilde çalışır yada bu bağlantı kopma sorununu nasıl çözebilirim

Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
ikra
Üye
Mesajlar: 868
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen ikra »

baglanti kopma sorununu sistemde aygitlar/cihazlar (türkce isletim sistemim yok, bilemiyorum tam adini) Enerji ayarlari kismindan Enternetkartinin uyku moduna alinmamasini saglayarak cözebilirsin.
kıdemsiz üye
tayipk
Üye
Mesajlar: 284
Kayıt: 27 Kas 2013 11:32

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen tayipk »

Fakat ekran üzerine bir Database bağlantısını yenilemek için buton ekliyorum ve butonun altına yukarıdaki aynı ifadeleri yazdığımda bağlantı bu sefer başarılı oluyor.

Butonun altındaki ifade ile Application Event altında aynı kod neden farklı şekilde çalışır yada bu bağlantı kopma sorununu nasıl çözebilirim
o zaman o butonun visible özelliğii FALSE yap Application Event Kısmınada Button1.click yap olsun bitsin :)
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
thelvaci
Kıdemli Üye
Mesajlar: 769
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen thelvaci »

Bir Exception oluşmuyor bu yüzden OnException kısmına düşmüyor olabilir mi ;)
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen adelphiforumz »

thelvaci yazdı:Bir Exception oluşmuyor bu yüzden OnException kısmına düşmüyor olabilir mi ;)
OnException eventine düştüğünü biliyorum çünkü oluşan hata eventlerini bir txt dosyasına yazıyorum.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen husonet »

yaşanan olay çok hızlı gerçekleşebiliyor olabilir yani network ten kaynaklanan bir olay yaşanıyorsa kopma aşamasını yani network tekrar ayağa kalkmadan bağlantı yapmak istiyor olabilirsin hataya düşünce sleep le filan bekleyip tekrar bağlanabilirsin yada arada ping ile kontrol edip bağlantı olumluysa bu işlemi yapabilirsin.

kolay gelsin....

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3064
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen sabanakman »

ApplicationEvents sınıfının onException olayında bulunan E parametresi, Exception'dan türeyen bir sınıftır. Hangi sınıf hata üretmiş buradan elde edemezsiniz, bu hangi hata sınıfı üretilmiş onu elde etmek içindir. Kısacası E nesnesi TADOConnection değil (TOLEException gibi) TException'dan türemiş bir nesnedir. Bu türden kopmaları telafi etmek için kullandığınız yapıyı bilmediğim için biraz yüzeysel bir tavsiyem olacak ama sağlıklı bir çözüm olmayabilir.
-Kopma durumuna özel oluşan hata mesajı ele alınarak o anda açık olan ADOConnection nesneleri kapatılıp açılabilir.
veya
-ADOConnection'dan türeyen başka bir bileşen yazarak istediğiniz yamayı şekillendirebilirsiniz hatta class helper ile de bu yama yapılabilir mi, üzerinde çalışmak lazım.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen barisatalay »

@husonet'in de dediği gibi çok hızlı gerçekleşme ihtimaline karşı aklıma biraz öğrenci mantığı olacak birşey geldi.

ApplicationEvents sınıfının onException olayına girip E parametresinin mesajını Pos ettir ve içerisinde örnek veriyorum bağlantı koptuğunda 'Connection is closed' diyor sa o kelmeleri Pos ile kontrol ettir eğer var ise;
Bir Thread başlat ve bağlantı hangi koşullarda sağlanacak ise o koşullar oluşana kadar Sonsuz döngü ile dönsün. Eğer bağlantı şartları oluşursa connectionu tekrar bağla ve threadı sonsuz döngüden çıkarabilirsin.

Falan filan düşündükçe daha farklı şeylerde gelebilir akıla olaya son mesajları okuyarak girdiğim için bi yerde mantık hatası yaptıysam özür ola.
ikra
Üye
Mesajlar: 868
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen ikra »

baglantinin kopmasinin sebebi büyük ihtimal bilgisayarin islem disi kaldiginda network kartini tasarruf moduna almasindan kaynaklaniyor.
kıdemsiz üye
Kullanıcı avatarı
muratcelik64
Üye
Mesajlar: 17
Kayıt: 16 Tem 2014 05:07

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen muratcelik64 »

Butona bastığında bağlantı sağlanıyor, çünkü olayı sen tetikliyorsun. Yani bağlantı varsa da yoksa da ADOConn. kapanıp açılıyor.
Diğer durumda ise;
Program bağlantının koptuğunu bilmiyor.
Yani sen program içerisinde devamlı olarak bağlantı varmı-yokmu diye kontrol ettirmelisin.
Bağlantı koptuğunda yazdığın kod devreye girecektir.
Bağlantıyı devamlı olarak kontrol ettirmek terminallere yük getirir.
Manuel olarak bağlantı daha sağlıklıdır.
nodetail
Üye
Mesajlar: 53
Kayıt: 04 Eki 2008 10:30

Re: Delphi Connection Kopma Durumu Hakkında

Mesaj gönderen nodetail »

Merhaba bu sorun aşılabildi mi yada nasıl aşıldı bilgi verebilir misiniz.
Cevapla