- MS-SQLServer veritabanına AdoConnection ile bağlı iken
1. Sunucu bilgisayar veya sunucu bilgisayardaki SQLServer restart edildiğinde
2. Sorgu sırasında AĞ'da sorun olduğunda...
... istemci (Client) makinelerde "Bağlantı başarısız oldu" hatası aldığımız durum gerçekleşiyor. AdoConnection'un bağlantı durumunu kontrol ettiğimizde halen Connected görünüyor.
- Zaten bunu DBGrid'lerdeki verinin ekranda görünmeye devam etmesinden anlıyoruz, keza AdoConnection Connected false olduğunda bağlı tüm AdoQuery'ler kapanıyor.
- Bu durumda AdoConnection'un Connected = True durumunu bozmadan yeniden SQLServer ile bağlantıdaki bu hatayı tamir edebilir miyiz ? Sorunun özü budur ...

- MSSQLServer Express kurulu SUNUCU bir bilgisayara AĞ üzerinden bağlantı kurulup bilgi girişi ve/veya sorgu yapılıyor. Master/Detail ilişkili iki tablo mevcut.
- Çalışma sırasında Master tablodaki veri DBGrid'den seçildikçe Detail tablodaki veri sorgulanarak diğer DBGrid'de sonuç ekrana yansıyor.
- Master tablo görüntüleniyor ve Detail tablo da görüntüleniyor iken, ağ kablosunu çektiğinizde beklenen şekilde; Master tablodan yapılan seçim doğal olarak detay tabloda detaylandırılamıyor ve "Bağlantı başarısız oldu" şeklinde bir hata alıyoruz. Bu da doğal. Buna diyecek bişeyim olamaz.
- Şimdi yazılım halen çalışıyor, ağ kablosunu tekrar yerine taktık ve ağ bağlantısı sağlandı. Master tablo hala açık, detay göremiyorduk. Master tablodan seçim yaptığımızda herşey normale dönmesini beklerken "Bağlantı başarısız oldu" hatası devam ediyor.
- Sorgulardan önce (özellikle master / detail sorgularda)
Kod: Tümünü seç
if AdoConnection.Connected THEN begin .. end;
- ANCAK
Kod: Tümünü seç
AdoConnection.Connected := False;
- Bu durumda da aynı AdoConnection'a bağlı açık diğer arkadaki formlardaki tabloların açık olduğu AdoQuery'lerin de Active'liği düşüyor ve hepsinin ayrı ayrı yeniden açılarak eski kayıt nolarına Locate ettirmek gereği doğuyor.
Bu sorunla muhakkak karşılaşan olmuştur. Çözümleri paylaşırsanız sevinirim. Kendimce gereğinden uzun yollu bir çözüme gitmek istemiyorum.
