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
Teşekkürler
YanıtlaSilhocam 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