Firebird Bağlantı Hatası!

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Firebird Bağlantı Hatası!

Mesaj gönderen xozcanx »

Merhaba;
Programda Sabit olmayan bölümlerde kilitlenme oluyor. Uygulamayı Reseteleyip tekrar açmak istediğimde veritabanına bağlantı sağlayamıyorum ve aşağıdaki gibi bir hata veriyor(Soldaki Resim). IBExper ile bağlantı sağlamak istediğimde de aşağıdaki gibi hata veriyor(Sağdaki Resim). Firebird'ü Hizmetlerden tekrar Restart ettiğimde ise düzeliyor. :?
Veritabanı farklı bir makinede (Server Üzerinde), kendi makineme taşıdığımda ise hiç sorun yaşamıyorum.
Teşekkürler.
Resim
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Firebird Bağlantı Hatası!

Mesaj gönderen ikra »

Firewall, antivirüs vesaire 3050 portunu kilitliyor olabilir.
kıdemsiz üye
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Firebird Bağlantı Hatası!

Mesaj gönderen xozcanx »

Hocam cevap için teşekkürler, Port üzerinde bir engelleme mevcut değil ve bugün yine aynı sorunu yaşamış bulunmaktayım.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Firebird Bağlantı Hatası!

Mesaj gönderen Kuri_YJ »

Selamlar,

Başımıza şöyle bir şey gelmişti. Bir uygulama yazmıştık, TCP Üzerinden bir port ile kendi oluşturduğumuz bir server'a çeşitli mesajlar atıyorduk. Programlar clientlarda çalışırken birden mesajlar gitmez oluyordu.

Sanırım sebebi, network üzerinde firewall bir süre mesaj alışverişi olan portları ve adresleri hemen kesiyormuş. Yani Client Server'a bağlanıyor komut göndermeye çalışıyor ama Server'a böyle bir komut iletilemiyor. Bir şekilde Firewall araya girip mesajları kesiyordu.

Sizin de benzeri bir durumunuz söz konusu olabilir. TCP üzerinden bağlanıyorsunuz değil mi?

Programınızdaki Connection'da Database'e Alias üzerinden erişiyorsunuz değil mi?

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Firebird Bağlantı Hatası!

Mesaj gönderen xozcanx »

Kuri_YJ yazdı:
Merhaba;
Hocam Alias Kullanımı yapmıyorum normal bağlantı kullanıyorum. Uygualama Normal veri kaydetme ve sorgulama için kullanılıyor. Tabi SQL Server ve Firebird aynı sunucudaki 2 farklı DB den veri çekiliyor.
Sanırım sebebi, network üzerinde firewall bir süre mesaj alışverişi olan portları ve adresleri hemen kesiyormuş. Yani Client Server'a bağlanıyor komut göndermeye çalışıyor ama Server'a böyle bir komut iletilemiyor. Bir şekilde Firewall araya girip mesajları kesiyordu.
Sizinde yukarıda bahsettiğiniz gibi bir durum var ise Firewall üzerinden 3050 için ayrıcalık mı tanımamız lazım :?:
Teşekkürler,
İyi Çalışmalar.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Firebird Bağlantı Hatası!

Mesaj gönderen Kuri_YJ »

Selamlar,

ALIAS kullanımını bir düşünün. Bağlantı şeklinizde, Database yazan yerler için IP:ALIAS

Örneğin IP Adresi -> 192.168.10.85 olsun
ALIAS'ımız da MUHASEBE olsun.

192.168.10.85:MUHASEBE

olarak bağlanırsınız. Tabi öncesinde, Firebird'ün kurulu olduğu serverda aliases.conf dosyasına (Örneğin bizim FDB dosyamız. D:\DATA\MUHASEBE\MUH.FDB yerinde olsun)
MUHASEBE=D:\DATA\MUHASEBE\MUH.FDB

diyerek kaydetmeniz lazım.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Firebird Bağlantı Hatası!

Mesaj gönderen xozcanx »

Dediğiniz gibi yapıp hata tekrar edecek mi sorunu gözlemleyip dönüş yapayım.
İlginiz için Teşekkürler Hocam.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Firebird Bağlantı Hatası!

Mesaj gönderen xozcanx »

Kuri_YJ yazdı:
Merhaba;
Yukarıdaki kilitlenmeye sebebiyet veren noktayı tespit ettim fakat nedeni ni kavrayamadım bu konuda fikir veya çözüm arıyorum.
Form1 üzerinden Form2 ye erişim yaptığım kodlar aşağıdaki gibi

Kod: Tümünü seç

   with TForm2.Create(nil) do
    tRY
      Try
        Application.CreateForm(TForm2, Form2);
        ShowModal;
        if Assigned(Sorgu) then Sorgu.Free;
        if Assigned(YENI_Sorgu) then YENI_Sorgu.Free;
      Finally
        FreeAndNil(Form2);
      End;
    except on E: Exception do
      begin
        ShowMessage('Form2 Açılamadı!'#10#10+'Hata :'+PChar(E.Message));
        Raise;
      end;
    end;
Form1 üzerinde bulunan ButtonX'in ShowHint özelliği True ve bu şekilde ekrana Mesaj veriyor!
Form2 ile işim bitip kapattığımda Form1 üzerinde bulunan ButtonX in üzerine Mouse ile geldiğimde aşağıdaki hatayı alıyorum ve bunun sonucunda Uygulama Kilitleniyor. F9 ile derlediğim uygulamayı Resetleyip tekrar açtığımda uygulama derlenmeyip hata veriyor. Delphiyi kapatıp tekrar açmam gerekiyor.
Firebird kısmı ise şu şekilde!
Kendi makinemdeki DBye bağlantı sağladığımda hata sonucunda Firebird'ü Resetleme ihtiyacım olmuyor lakin sunucu üzerindeki DB ye bağlandığımda ve hata alıdığımda Firebird resetlenmediği takdirde ilk mesajımdaki hatayı alıyorum.
ButtonX üzerinneki ShowHint özelliğini kapattığımda ise sorun sorun ortadan kalkıyor!
Teşekkürler.
İyi Çalışmalar.

Resim
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Firebird Bağlantı Hatası!

Mesaj gönderen ikra »

Free yerine FreeAndNil kullanin.
yada Free dedikten sonra manuel NIL yapin.
Cünkü siz Free yapmis olsaniz dahi Assigned sorgunuza True döndürecektir.
Var olmayan bir nesneye ulasmaya calistiginiz icin Access Violation hatasi aliyorsunuz.
kıdemsiz üye
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Firebird Bağlantı Hatası!

Mesaj gönderen xozcanx »

ikra yazdı:Free yerine FreeAndNil kullanin.
yada Free dedikten sonra manuel NIL yapin.
Cünkü siz Free yapmis olsaniz dahi Assigned sorgunuza True döndürecektir.
Var olmayan bir nesneye ulasmaya calistiginiz icin Access Violation hatasi aliyorsunuz.
Hocam ilginize Teşekkürler.
Access violation varolmayan bir nesneye erişmek istediğimizde veriyor, Free dediğim kısımlar Form2 ye ait olan nesnelerdi, if assigned(nesne) then nesne.Free; de gereksiz zaten Sonuçta Formu Free ediyoruz.İlginç olan Form2 yi FreeAndNil ile Free ettikten sonra başlıyor, FreeAndNil satırını kaldırınca hata da çıkmıyor anlaşılar Form2 üzerinde Hint özelliğini etkileyen bir durum söz konusu!
İncelemeye devam :roll:
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Firebird Bağlantı Hatası!

Mesaj gönderen ikra »

Kod: Tümünü seç

 with TForm2.Create(nil) do // BURADA CREATE ETTIGIN FORM2'YI......
    tRY
      Try
        Application.CreateForm(TForm2, Form2); // ...BURADA TEKRAR CREATE EDIYORSUN!
        ShowModal;
        if Assigned(Sorgu) then Sorgu.Free;
        if Assigned(YENI_Sorgu) then YENI_Sorgu.Free;
      Finally
        FreeAndNil(Form2);
      End;
    except on E: Exception do
      begin
        ShowMessage('Form2 Açılamadı!'#10#10+'Hata :'+PChar(E.Message));
        Raise;
      end;
    end;
söyle düzeltelim

Kod: Tümünü seç

 tRY // TRY'I BASA ALALIM
   with TForm2.Create(nil) do 
      Try // BU TRY FORMU GÖSTERDEN ÖNCE KULLANILSIN KI, SHOWMODAL'DAN GERI DÖNDÜGÜNDE FINALLY DEVREYE GIRSIN
        ShowModal;
        //if Assigned(Sorgu) then Sorgu.Free; // EGER FORM2 ICINDE FREE EDILIYORSA BURADA FREE EDILMESINE GEREK YOK
        //if Assigned(YENI_Sorgu) then YENI_Sorgu.Free; // EGER FORM2 ICINDE FREE EDILIYORSA BURADA FREE EDILMESINE GEREK YOK
      Finally
        FreeAndNil(Form2); // FORMU FREE EDELIM
      End;
    except on E: Exception do // HATA MESAJINI YAKALAYALIM
      begin
        ShowMessage('BU ISTE BIR YALNIZLIK VAR!'#10#10+'Hata :'+PChar(E.Message));
        Raise;
      end;
    end;
kıdemsiz üye
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Firebird Bağlantı Hatası!

Mesaj gönderen xozcanx »

ikra yazdı:
Hocam Teşkkürler Blokları düzelttikten sonra sorun ortadan kalktı fakat anlamadığım nokta şu Form2 de işlem bitip kapattıktan sonra Form1 üzerinde Diğer tüm işlemleri yapabiliyorum(Kayıt Ekle Güncelle Yeni Sorgular vs.), Sadece ShowHint özelliği True olan nesnelerin üzerine geldiği anda bu hatayı vermesi ilginç değilmi?
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Firebird Bağlantı Hatası!

Mesaj gönderen ikra »

Ana form ile ara formlar exe icinde mi yoksa dll mi kullaniyorsun?
Dll kullanirken hint pencerelerinde böyle bir olay yasamistim. Eger dll kullanmiyorsan su an aklima sebep gelmiyor. Kod boloklarini görmeden birsey diyemem.
kıdemsiz üye
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Firebird Bağlantı Hatası!

Mesaj gönderen xozcanx »

Hocam Dll de kullanmıyorum fakat neden böyle oldu bende anlamadım. Formu görüntülemek kod bloğunu dediğiniz gibi düzenleyince sorun ortadan kalktı.Projenin Bir Backup ını aldım bu kısma tekrar döneceğim :) Tekrardan ilginize Teşekkürler, ALLAH razı olsun. Yanlış bildiğim bir doğruyu daha öğrendim sayenizde.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Firebird Bağlantı Hatası!

Mesaj gönderen ikra »

Rabbim cümlemizden razi olsun insaAllah.
Kolay gelsin.
kıdemsiz üye
Cevapla