arkadaşlar interbase de udf ler hakkında fazla bilgim yok?
mümkünse çok yüzeysel bi şekilde kısaca açıklarmısınız? udf fonksiyonları delphi tarafında mı yoksa veri tabanın da mı çalışır?
bir örnek gönderebilirseniz sevinirim...
Teşekkürler...
interbase ve udf
Bu makaleyi yazan arkadaşa da teşekkür ederimm.hakkını yememek lazım..kolay gelsinUDF, kısacası database ile yaptıramadagımız matematiksel yada parse etme işlemlerimizi rahatlıkla yaptırmamızı yarayan dll dosyalarıdır. Bunları Delphi ile rahatlıkla yazabilirsiniz.UDF ile neler yaptırabiliriz?
UDF ile aklınıza gelebilecek her türlü kolaylıgı saglayabilirsiniz. Mesala Eger kişi veritabanı alanına dogum tarihini girerse ve siz yaşını hesaplamak isterseniz bunu veritabanına yaptırabilirsiniz.Aksi durumda bunu programınızdan kod yazarak yapmak zorunda kalacaktınız. Peki, gerçekte kod yazmak dogru mu? Her ikisi de aynı işlemi yapmasına ragmen kod yazmak dogru degildir. Neden? Çünkü, SQL Explorer ya da başka programlar ile veri girilmek istendiginde sizin programınız çalışmadıgından yaş hesaplanmayacaktır oysa ki, UDF Kullanıldıgında başka programlardan dogum tarihi girilmesine ragmen yaş hesaplama işlemi yapılır. Bu da bizim Veritabanımızın daha stabil çalışması anlamına gelecektir. UDF Kullanırken bazı noktalara dikkat edilmesi gerekir bunlardan en önemlisi Null (Degersiz veya boş veri) alan kullanılmamasıdır.
Bir UDF oluşturup kullanmak için öncelikle udf nin kullanacağı, içinde fonksiyon bulunan bir dll lemiz olmalı
Dll hazırlamak için önce File-New menüsünden Other seçeneğini seçtikten sonra çıkan pencerenin New sekmesindeki DLL Wizad’ı seçin.
Bu işlemden sonra File-New menüsünden Unit' Tıklayıp Projeye yeni bir unit ekliyoruz.
DLL'yi Derlemeden Öncce Projeyi UDF_TOPLA ismiyle Kaydedin
> Dll dosyaları F9 tuşu ile çalıştırılmazlar. Derlemek için Project-Build UDF_TOPLA seçeneğini kullanmalısınız. Bu işlem sonrasında proje exe olarak değil dll uzantısına sahip olacaktır. Derlediğinizde herhangi bir hata yoksa projeyi kaydettiğiniz yerde UDF_TOPLA.DLL Dosyasını Gööreceksiiniz.
Oluşturduğunuz DLL'yi firebirdin yada interbasenin udf klasörüne kopyalayın.
benim pc de firebird dizini C:\Program Files\Firebird\Firebird_1_5\UDF
interbase udf dizini C:\Program Files\Borland\InterBase\UDF de bulunuyor
udf yi interbaseye tanıtmak için aşağıdaki kodu kullaanıyoruz.
DECLARE EXTERNAL FUNCTION UDFEM
INTEGER,
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'Topla' MODULE_NAME 'UDF_TOPLA'
DECLARE EXTERNAL FUNCTION Udf Yi Tanımlamayı Sağlıyor. Bundan Sonra Bir Ad Seçiyoruz. Ben Udfem Yaptım. Daha Sonra Dll'de Kullandığımız Parametrelerin Tipini Hyazıyoruz. Fonksiyonda İ Ve J Adında İki Parametremmiz Olduğu İçin Ve Tipleride İnteger Olduğu İçin İki Nteger Tipi Göseriyoruz. Birden Fazlaysa Parametre Sayısı Tiplerin Arasına Virgül Ekliyoruz.
Daha sonra RETURNS yazıp fonksiyon tipini integer seçiyoruz. returnstan sonraki tip tanımına udf den dönen değer eklenir. udf den tek değeröner. tıpkı fonksiyon gibi. zaten buda IB / FB fonksiyonu.. daha sonra BY VALUE yazıyoruz. BY VALUE yerine BY reference yazabiliriz. siz BY VALUE kuullanın. sonra ENTRY_POINT tırnak arasında dll de kullandığımız fonksiyon ismini yazıyoruz. son olarak MODULE_NAME yazıp tırnak arasında dll ismini uzantısını kullanmadan yazıyoruz.
Tools> SQL Editörü açıp oraya şu kodu yazarak etkisini görebilirsiniz
select UDFEM (1001,202) from rdb$database
rdb$database > UDF bilgilerini tutan sistem tablolarından biridir.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Bence bu ve buna benzer kaynaklara göre kendin yapmaya çalışırsan senin için daha faydalı olur..şu anda gönderme imkanım yok fırsatını bulursam yardımcı olmaya çalışırım.firebird ün sitesinde de buna benzer dökuman ve örnek uygulamalar olması gerekir.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Az önceki mesajı yazdıktan sonra forumda gezerken buldum..
Arkadaşlar arama yapalım burası bir hazine...
arama yapalım aramaa
viewtopic.php?t=5570
buraya bir göz at
Arkadaşlar arama yapalım burası bir hazine...

viewtopic.php?t=5570
buraya bir göz at
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
merhaba,
İşinize yarayabilecek iki güzel link vernek istiyorum. İsterseniz bir inceleyin
http://www.delphidunyasi.com/IBExpertle_UDF.htm
http://www.delphidunyasi.com/UDF%20Oluşturma.htm
İşinize yarayabilecek iki güzel link vernek istiyorum. İsterseniz bir inceleyin

http://www.delphidunyasi.com/IBExpertle_UDF.htm
http://www.delphidunyasi.com/UDF%20Oluşturma.htm
Bilgi çoğaldıkça krallar ölür