11 Mayıs 2014 Pazar

Firebird Veritabanı için Alias Kullanımı ve Lazarus Örneği

      Eski Delphi kullanıcıları hatırlayacaklardır BDE üzerinde Alias kullanımını. Açıkçası BDE üzerinden paradox ve interbase kullandığım zamanlar bilinçli veya bilinçsiz alias kullanım alışkanlığı oluşmuştu. Yıllardır nedense pek kullanma gereği hissetmedikmi nedir Firebird veritabanında alias kullanmadan veritabanına erişimi tercih ettim. Galiba kendimizi anlamsız bir şekilde veritabanına doğrudan yolunu yazarak erişmenin daha sağlam olduğunu düşündük. Aslında kısmen bu yersiz düşüncenin doğruluk payı olabilir. Şayet veritabanınız geliştirme aşamasında sürekli dizin değiştirme gibi bir işleme tabi tutuluyorsa biraz anlamlı olabilir. Ancak yine de yersiz bir düşünce.
Alias kullanımı firebird veritanımıza erişimde bize rahatlık sağlayacaktır. Verierişim bağlantı nesnelerinde (TIBconnection, Tdatabase vs.) uzun uzun veritabanı adı yazmak yerine sadece aliası yazmamız bize büyük bir pratiklik sağlayacaktır. Ayrıca veritabanımızın sırf fantezi olsun diye yerini değiştirip duruyorsak sadece “aliases.conf” dosyamızdaki aliasın veriyolunu değiştirmemiz yeterli olacaktır. Verierişim bağlantı nesnelerinde sadece alias olarak tanımladığımız kelimeyi veritabanı yolu + ismi yerine bir kere yazmamız sunucuda yeri zırt pırt değişsede veritabanı dosyamızın bizim erişimimize bir zarar vermeyecektir. Dolayısıyla bir ölçüde kararlı erişim sağlar diyebiliriz. Bu işin nasıl yapılacağını örneklemekte fayda var.

 Benim bilgisayarımdaki örnek firebird veritabanı dosyam
“D:\Components Delphi\Demo Databaseler\Demodatabase.fbd” şeklinde bulunmakta.

      İlk yapmam gereken bu veritabanı dosyasının uzun yoluna ve ismine karşılık bir Alias tanımlamak. Bunun için benim firebird 64bit sunucumun kurulu olduğu (windows için) “C:\Program Files\Firebird\Firebird_2_5\” dizini içindeki aliases.conf dosyasına ulaşıp Notepad ile düzenlemek üzere açarız.


















    






      Yukarıda gördüğünüz gibi “DEMODATA” isimli alias'ımı tanımladım. Bu pencereyi kaydet menüsüne tıklayarak kapatalım. Artık uzun veritabanı yolunu ve adını erişmek için yazmama gerek yok. Hadi buna birde Lazarus üzerinden yazacağımı basit verierişimi yapan bir uygulama ile örnek verelim.



      Lazarus formu üzerine bir adet Ibconnection1 isimli bir veri bağlantı nesnesi ekledim. Bu nesnenin kullanıcı adına 'SYSDBA' ve password kısmına 'masterkey' verilerini girdim. Connected kısmını true yaptığımda hata vermeden veritabanına bağlandığını gördüm. Bu veritabanı benim local (yerel) makinamda olduğu için dikkat ettiyseniz hostname parametresine hiçbirşey yazmadığım halde sıkıntı çıkarmadı. Bu veritanının başka bir sunucu üzerinde konuşlandığı ihtimalini göz önüne alırsak o zamanda hostname kısmına sunucunun adını yazmamız yeterli olacaktır. Diğer türlü çalışma anında veritabanı bilgisini girmemiz durumunda ise yazacağımız şey şu olacaktır:

'Sunucum:DEMODATA'

Diğer türlü olsaydı dosyanın sunucuda hangi klasörün altında hangi isimle tutulduğunu bilmemiz gerekecekti. O zaman şöyle yazacaktık :

'Sunucum:D:\Components Delphi\Demo Databaseler\DEMODATA.FDB'

       
Düşününki veritabanını farklı bir yere farklı bir isimli backup-restore yaptınız. Şayet alias kullanmıyorsanız yandınız demektir. Bu durumda bu veritabanına bağlanan tüm client(istemci) makinalarda yeni veritabanı yolunu ve ismini teker teker düzenlemeniz gerekecektir. Halbuki alias kullanmış olsanız istemci makinanın o veritabanın isminin ve yolunun değiştiğinden haberi bile olmayacaktır. Bir sürü istemcide veritabanı bağlantı betiğini(scriptini) değiştirmek yerine sadece suncudaki aliases.conf dosyasında tek satır düzenlemeniz yeterlidir. Umarım Alias (rumuz) kullanımının faydasını bir nebze olsun anlatabilmişimidir. “Kolaylaştırınız güçleştirmeyiniz.”

Ek Not: Bazı internet sitelerinde alias kullanımının performansı olumsuz yönde etkileyebileceği belirtilmiş. Nadirende olsa alias kullanımının faydalı olacağı da söylenmiş. Sonuçta deneme yanılma yapmakta fayda var derim.

Başka bir yazıda görüşmek üzere Hoşçakalın.

Durali Kiraz
Yazılım Geliştirici
duralikiraz.blogspot.com

2 yorum:

  1. hocam firebird yüklü olduğu halde gds32.dll ve fbclient.dll hatası veriyor ayrıca bir tanıtma mı gerekiyor acaba saygılarımla

    YanıtlaSil