Home > Delphi | Veritabanı > Delphi.NET ve Firebird Bağlantısı

Delphi.NET ve Firebird Bağlantısı

Posted on 21 Nisan 2007 | 1 Yorum

Bildiğiniz gibi Delphi artık, .Net ortamında hem VCL bileşenlerini hem de normal .Net bileşenlerini kullanmamızı destekliyor. Bu kısa makalemizde Delphi ile, WinForms’u kullanarak Firebird veritabanına nasıl erişebileceğimizi göreceğiz.

Firebird .NET Data Provider

Yapacağımız ilk iş buradaki adresten Firebird .NET Data Provider’ı indirmek olacak. Eğer daha önceden Firebird’ü indirip kurmamış iseniz, onu da indirip kurmanız gerekmete. Ben bu makalede farklılık olsun diye embedded tipi veritabanı kullanacağım. Ama server/classic db ile aralarında fazla bir fark yok. Data Provider’ı indirirken dikkat etmeniz gereken nokta Delphi’nin desteklediği .net sürümü ile data provider’ın aynı olması. Bu makalede Delphi 2006 kullanacağım ve Delphi 2006 .Net 1.1 ile çalışıyor. Bu yüzden .Net 1.1 için gerekli olan Data Provider’ı indirip kurdum.

Data Provider’ı Delphi’ye Ekleyelim

Eğer Data Provider’ı indrip kurmuş iseniz, Firebird assembly’lerini Delphi’ye ekleyebilirsiniz. Bunun için menüden Component/Install .NET Components seçeneğini tıklayalım.

Listeden FbCommand, FbCommandBuilder, FbConnection, FbDataAdapter bileşenlerini seçelim. Normalde kategori olarak "General" gözükebilr. İsteğe göre daha sonra bu bileşenleri "Firebird" isimli bir kategoriye alabilirsiniz.

Eğer bu bileşenleri göremiyorsanız, kategori kısmına Firebird yazalım ve "Select an Assembly" tuşuna basarak "C:\Program Files\FirebirdNETProvider XXX"altından "FirebirdSql.Data.Firebird.dll" dosyasını seçelim. Bileşenleri seçtikten sonra onaylayıp kapatalım.

WinForms ile Örnek Bir Uygulama

Yeni bir "Windows Forms" uygulaması açalım. Firebird bileşenlerini Bileşen Paletinde belirlediğiniz kategori altında görünecektir. Eğer General kategorisinde ise "Firebird" isminde yeni bir kategori açıp bu kategori altına bileşenleri taşıyabilirsiniz.

Form üzerine bir adet FBDataAdapter ekleyelim. Karşımıza Configuration Wizard çıkacak. Next tuşuna basıp diğer sayfaya geçiyoruz.

"New Connection" tuşuna basalım. Karşımıza "ConnectionString Editor" gelecek.

Database kısmına db dosyasının yolunu girelim. Server Type olarak ben "Embedded" kullandığım için bu şekilde seçtim. Ama siz Superserver/Classic seçebilirsiniz. Eğer benim gibi Embedded Server kullanıyorsanız, fbembed.dll dosyasının ismini değiştirmeden, "C:\Program Files\Borland\BDS\4.0\Bin" klasörü altına fbembed.dll, firebird.conf, firebird.msg, aliases.conf, ib_util.dll, icu***.dll dosyalarını kopyalamalısınız. Ayrıca bu dosyalar proje dosyanızı kaydettiğiniz yerde de bulunmalı. İsteğe göre System32 klasörü de kullanılabilir ama ben bu şekilde tercih ediyorum.

Eğer db içinde Unicode kullanıyorsanız charset için UNICODE_FSS’i seçmeyi unutmayın. Å?ifre ve kullanıcı adını da girdikten sonra Test tuşu ile bağlantıyı kontrol edebilirsiniz. Eğer bağlatı başarılı ise Accept tuşuna basıp onaylıyoruz.

Bu işlemin ardından Next tuşuna basıyoruz. Dikkat ederseniz, projemize FBConnection1 isminde yeni bir bileşen otomatik olarak eklendi. Sonraki pencerede, "Use SQL Statements" olarak bırakıp Next diyoruz. Bundan sonra SQL cümleciğimizi oluşturabilmemiz için gereken bir ekran geldi. Buraya aşağıdaki gibi bir SQL cümleciği yazıyoruz.

SELECT * FROM KISILER

"Generate Update, Insert, Delete .." seçeneğini seçersek, sihirbaz bizim için bu sql cümleciklerini de otomatik olarak oluşturacaktır. Ardından Next ve Finish tuşlarına basıp işlemi tamamlıyoruz. Å?u an FbDataAdapter1 ve FbConnection1 form’a yerleşmiş olmalı.

Å?imdi gerekli olan DataSet bileşenini oluşturalım. FbDataAdapter1 bileşenini ister sağ tuş ile, isterseniz seçtikten sonra object inspector altındaki bölümden "Generate DataSet" seçeneğini seçiyoruz.

New bölümüne DataSet nesnemize dsKisiler gibi bir isim veriyoruz. FbConnection1 bileşenimizin ismini dcMyDB, FbDataAdapter1 bileşenini de daKisiler olarak değiştirelim. Eğer önceden oluşturduğunuz bir DataSet’i kullanacaksanız, Existing bölümünden istediğiniz DataSet nesnesini seçebilirsiniz. Tablo seçim bölümünden örnek veritabanımızda bulunan ve DataAdapter bileşenine girdiğimiz SQL cümlesinde tanımlanan KISILER tablosunu seçiyoruz. Tamam’a basıp çıkıyoruz.

dsKisiler isminde (ya da sizin belirlediğiniz bir isimde) yeni bir DataSet bileşeni formumuza eklendi.

Bağlantı bileşenlerimiz bu kadardı. Å?imdi bunu test etmek için form üzerine bir adet DataGrid ekleyelim. DataGrid’i seçelim ve DataSource özelliğini DataSet’imiz olan dsKisiler olarak değiştirelim. DataMember özelliğini de tablomuz olan "KISILER" tablosunu seçelim. Bu işlemden sonra DataGrid tablomuzun içeriğini göstermeye başlayacaktır.

BDP ile Firebird Bağlantısı

Yukarıda yaptığımız işlemler klasik bir ADO.NET bağlantısı idi. Borland, BDP ile ADO.NET’e yeni çözümler getirmektedir. BDP, bir çok veritabanını ekstra bir data provider gerektirmeden bir çok özellikle beraber kullanmanızı sağlıyor. Yukarıda yaptığımız işlemler için Firebird DataProivder gerekli idi. Ama BDP bağlantılarında ekstra bir data provider’a ihtiyacınız yok.

Yukarıda yaptığımız veritabanı bağlantısını şimdi BDP ile yapalım.

Yeni bir WinForms uygulaması açalım. Data Explorer’dan BDP altından Interbase bağlantısına sağ tuşa tıklayalım ve "Add New Connection" seçeneğini seçelim.

İsim olarak "MyDB" yazalım ve onaylayalım. Oluştuduğumuz yeni bağlantıya sağ tuş ile tıklayıp "Modify Connection" seçeneğini seçelim. Database bölümünden database dosyamızı seçelim. Test tuşu ile bağlantımızı test edelim. Eğer bağlantı başarılı ise onaylayıp çıkalım. MyDB bağlantımızın Tables alt bölümünü açarsak bağlantı otomatik olarak açılacak ve veritabanında bulunan tablolar görünecektir.

Å?imdi Tables altındaki "KISILER" tablosunu tutup, formumuza sürükleyelim. Eğer aşağıdaki gibi bir hata alırsanız MyDB bağlantısını tekrar düzenleyin ve bu sefer SQLDialect olarak 1 girin.

"Ambiguous field name between table RDB$RELATION_CONSTRAINTS and table RDB$RELATIONS RDB$RELATION_NAME"

Formumuzda bir adet BdpConnection ve bir adet BdpDataAdepter bilşenleri eklendi. Firebird bileşenlerinde yaptığımız gibi, DataAdapeter bileşenini seçip Object Inspector altından ya da bileşene sağ tuşla tıklayarak "Generate Typed DataSet" seçeneklerini seçin. Gelen pencereyi onaylayıp kapatın. Formumuza DataSet nesnemiz eklenmiş oldu. Bundan sonra önceki örneğimizde olduğu gibi DataGrid’i bağlayabiliriz.

Bdp’nin desteklediği bir çok veritabanı için de bağlantı şekli bu şekildedir. Gerek Firebird bileşenlerini kullanın, gerekse BDP kullanın her halükarda, bir adet Connection, bir adet DataAdapter ve bu DataAdapter’a bağlı olan bir DataSet’e ihtiyacınız olacaktır.

VCL.NET ile Firebird Bağlantısı

Aslında böyle bir şeyden bahsetmeyeceğim. Çünkü VCL.NET bileşenleri içinde Interbase bileşenlerinin aynıları bulunmakta. Eğer VCL kütüphanesinde bulunan Interbase bileşenleri ile Firebird bağlantısı kurmayı biliyorsanız, VCL.NET ile de farklı bir şey yapmayacaksınız.

Örnek uygulamaların kaynak kodlarını buradan indirebilirsiniz.

Kolay gelsin.

Fatih Tolga Ata © 2007

» Tags: , , , , ,

1 Yorum

  • At 2010.07.28 13:39, admAR2010 said:

    emeğinize saglık teşekkür ederim

    (Required)
    (Required, will not be published)

    Switch to our mobile site