'Bağlantı Kesildi' hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: 'Bağlantı Kesildi' hatası

Mesaj gönderen mrmarman »

iki adet timer bulundur.

Birisi Try Except bloğuyla sürekli bağlanmaya çalışsın. Ama çekiçleme yapmadan bu işi yapması lazım. Biliyorsun Timer nesnesi interval süresince aynı şeyi tekrar tekrar yapmaya çalışır. Senin bir işlemi sonlandırdığını anlaman ve ondan sonra yinelemen lazım. Yoksa connect olmaya çalışırken yeniden connect komutu alması olumsuzluğu yaşarsın.

Şöyle ki aşağıdaki şekilde Local bir değişken olan IslemSuruyor boolean değişkeni timer her interval uğradığında verdiğim {$j} direktifleri nedeni ile bir önceki değeri ne ise aynı değeri alır. Bu sayede bağlanmaya çalıştığı sırada bu blok tekrar çalıştırılmasının önüne geçilmiş olur. Göreceğin üzere yapacağın işlem Bağlantı koptuğunda bu Timer bloğunu çalıştırman ve arkana yaslanman yeterli. Bağlantı kurulduğunda timer otomatikman durur.

Nesnel yaklaşım budur. Sen görev verirsin, ilgili blok görevini yapar ve duracaksa durur.

Tabi buraya da Try Exept bloğu yine koyacaksın ki Except olduğunda IslemSuruyor FALSE edeceksin. Kafa karışıklığı yaşanmasın diye sade omurgayı göstermek istedim.

Kod: Tümünü seç

procedure TForm1.Timer1Timer(Sender: TObject);
Const
{$j+}
  IslemSuruyor : Boolean=False;
{$j*}
begin
  if NOT AdoConnection1.Connected then begin
    if NOT IslemSuruyor then begin
      IslemSuruyor := True;
      AdoConnection1.ConnectionString := 'bla bla bla...';
      AdoConnection1.Connected := True;
    end;
  end else begin
    Timer1.Enabled := False; // Connected olduysa timer durur.
    IslemSuruyor := False;
  end;
end;
ÖZETLE :

Hata mesajını diğer eski kurduğun Try Except ile yakaladığında bu Timer'i çalıştıracaksın. Bu timer çalışırken diğeri kontrolü bırakacak, sonra kontrolü devralacak.


[ EDIT ] EKLEME YAPIYORUM
Burada TİMER'a ne gerek var diyenleri duyar gibiyim. İlk seferinde anlaşılmayabilinir. Time içine ekleyeceğin Try Except ile, timer yeniden aynı işlemi yinelemek için çalışır durumda bulunacağından gerek duyuluyor. Yoksa bu haliyle bir procedure bu işi bir kere yapardı.
Resim
Resim ....Resim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: 'Bağlantı Kesildi' hatası

Mesaj gönderen conari »

Arman Hoca aramıza tekrardan hoşgeldin.
Uzun zamandır yoktun.

Yine Makale yazarcasına döktürmüşsün.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: 'Bağlantı Kesildi' hatası

Mesaj gönderen mrmarman »

Teşekkürler hocam. :)
Uzun ve yoğun bir iş temposundan yeni kurtuldum. Foruma henüz yavaş yavaş ısınıyorum. Boş vaktim oldukça yazılım-teknik konusunda yardımlarda bulunmaya çalışıcam. :idea:

Makale tadında olmasını seviyorum. Ayrıca makaleler alanında yazmaktan ziyade, gerçek sorunların olduğu başlıklar altında bu şekilde bulunması çözümlerin hayata dair bağlantısını kurmaya yardımcı ve daha akılda kalıcı oluyor, tek mesele Türkçe cümle kurgusunda son zamanlarda çok hata yapıyorum. Onlara biraz daha dikkat etmem lazım. Yukarıdaki cevapta da cümleler yola çıktıktan sonra yön değiştiriyor. Sonradan sabredip düzeltmem lazım ama saat geç vakitlerde yazınca uyku galip geliyor.
Resim
Resim ....Resim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: 'Bağlantı Kesildi' hatası

Mesaj gönderen sabanakman »

Tekrar hoşgeldin hocam.
mrmarman yazdı:.. cümleler yola çıktıktan sonra yön değiştiriyor. Sonradan sabredip düzeltmem lazım ama saat geç vakitlerde yazınca uyku galip geliyor.
Uyumanın formülü bu ise hemen denemem gerek :lol: . Bu aralar uyumak lazım, çayı kahveyi bıraktık TV'yi bırakamadık bir türlü :mrgreen: .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla