Ana içeriğe atla

Asp.Net Interbase OLEDB - IBProvider Sql Data Source Commands-Procedure_1

Asp.Net web uygulamalarımızda Interbase 7.5 sürümünü ve IBProvider ile OLEDB bağlantısı kurarak, Asp.Net ve ADO.Net teknolojilerini kullanmaya devam ediyoruz...

Bir önceki blog yazımda Interbase veritabanımıza ObjectDataSource ve TableAdapter kullanarak bir örnek yapmıştık.Şimdi ise Visual Studio 2008 ve 2010 içerisinde bulunan "Sql Data Source" ile veri erişimimizi sağlayarak yapılandıracağız. Yazının tümünü okumayı tamamladığınızda Firebird ve Interbase türündeki veritabanını nasıl kullabildiği hakkında fikirleride edinmiş olacaksınız.

Başlarken :
Asp.Net Interbase 7.5 IBProvider Table Adapter-ObjectDataSource adlı yazısını okumuşsanız bu blog sizin için farklı bilgiler içerecektir.Eğer ilk yazıyı okumamışsanız bu yazıdan sonra diğer bloguda okumanız, Asp.Net Web uygulamalarınızdaki Interbase test işlemlerinizi hızlandıracaktır...

Bu fantastik database deneyimini Visual Studio ile denemek isteyen, yeni başlayanlar için aşağıdaki gereksinimlerin karşılaması gerekli. Bu sayede hem yazıyı okuyup hemde bu örneğe sahip olabilirsiniz.Yazının tamamındaki bilgiler Interbase veritabanını kapsasada, aynı yöntemle Firebird 2.5 - 2.6 sürümleri içinde geçerlidir ve benzer yöntemler kullanılabilir.Fakat Firebird OLEDB içinde yeni bir yazı yazacağımı söylemeliyim.Aşağıdaki listeyi dikkatlice incelemeli verilen linklerden gereksinimleri tamamlamalısınız...

Bu Örnek İçin Neler gerekiyor :
1- Asp.Net Framework OLEDB sağlayıcı servisi kullanacağız.Ama Interbase destekleyen bir "Provider" gerekli.Bu gereksinimizi IBProvider kullanarak sağlayacağız. Dolayısıyla IBProvider sürücülerini indirmelisiniz.
2- Interbase veritabanımız olacağından Interbase veritabanımız olmalı ve Interbase SQL Server ve Manager kurulumunun tamamlanması gerekli bu yazıda kullanılan sürüm WI-7.5.1.80 ve Interbase  7.5 kullanıldı...
Her iki gereksinimi Database  ve Provider gereksinimlerini www.ibprovider.com adresinden edinebilirsiniz.
3- Interbase Sql Server ve Manager kurulumlarından sonra bir database tasarımınızı IBConsole ile yapabilirsiniz.Fakat rahatınıza düşkün bir database tasarımcısı olmak isterseniz size IBExpert - FLameRobin yada Interbase Firebird Sql Manager adlı Manager programları lazım olacaktır.IBExpert bana göre daha rahat kullanımı ile diğerlerinden farklıdır ve www.ibexpert.net adresinden indirilebilir.
4- Visual Studio 2005 - 2008 veya 2010 sürümlerinden birini kullanıyor olmalısınız.
5- Örnek başlıktaki gibi Asp.Net Web Uygulaması olacaktır.Windows formcular bu yazıdan  esinlenebilirler fakat Interbase ve Firebird için DDEX bağlantı kurabilecek başka araçlarda vardır.

Başlıyoruz.
Interbase Database Table
Interbase Database ve bir table oluşturmalıydık.Ben şu türden bir basit bir table edindim.
KIMID Primary Key - KIM VarChar - KIMDIR VarChar- karakter seti ise WIN1254 dikkat etmeniz gereken niteliklerdir. Interbase ve Firebird database için Integer değerleri Primary Key (Birincil Anahtar) olarak kullanmak MS Sql' den oldukça farklı bir yöntem kullanılmaktadır.Bunuda önceki blogların birinde  anlatmıştım.

Microsoft Visual Studio Web Developer - Server Explorer Interbase bağlantısı yapalım.
Bundan sonraki bir kaç resim ve bilgileri tam olarak ve dikkalice uygulamalıyız.


Yukarıda bahsettiğim gereksinimlerden biri olan IBProvider  burada gereklidir.

.NET Framework Data Provider for OLE DB veri kaynağını seçerek burada IBProvider seçimini yapmamız gerekir.

Location kısmında ise Interbase veritabanımızın bulunduğu fiziksel adresi vermeliyiz.Buna göre veritabanımız Web uygulama dizinimizde olması gereken App_Data klasöründe mutlaka olması şart değildir.

Data Links kısmına geçtiğimizde bazı önemli yapılandırmalarıda burada yerine getirmeliyiz.



Code Page WIN1254 karekter seti ve UNICODE mode seçilmelidir.Bu yapılmadığında Türkçe karakterler veritabanında belirtilmiş olsa dahi kaydedilemez ve web uygulamanız kayıt esnasında hata üretir.

Enable automatic transancation check edilmelidir.Bu seçeneğin seçilmemiş olması halinde bu hatayı işaret eden bir hatayı web uygulamanızdan veritabanınıza veri eklerken üretir ve kayıt işlemi durdurulur.


Yapılandırmanın Gelişmiş sekmesinde gördüğünüz Interbase Client tipinin seçilmesi ve gds32.dll Library belirtilmelidir.

IBProvider tarafından desteklenen Client tipleri
Interbase - Firebird - Firebird 1.5 - Firebird 2- Yaffil
tipleridir.Firebird veritabanı anlatılan yöntemlerde kullanıcaksanız "fbclient.dll" Library fiziksel adresini yazmalı ve Firebird Manager Super Server çalışır halde tutmalısınız.




Bu son işlemle birlikte Visual Studio geliştiriciniz Server Explorer kısmında yeni bir veritabanı bağlantınızı hazırlamış ve mevcut database nesnelerinizi (Table-Stored Procedure-View) sunmaya başlamıştır.


Artık yeni bir Asp.Net Web Page oluşturabilir ve verikaynağımıza ulaşmayı deneyebiliriz.

Interbase Database - Sql Data Source:
Web uygulamıza eklediğiniz Web page içinde bir yere Visual Studio Data tools seçenekleri içerisinde yer alan  SqlDataSource aracını eklediğinizde.Veriye direk bağlantıyı configre edebilirsiniz, bu yöntem dışında bu işi kod ile halletmenizde seçenekleriniz arasındadır.Ben kod içeriğindende bahsedeceğimden Sql Data Source kısmını kod yazarak edineceğiz...
<!-- Commands Sql DataSource -->
   <asp:SqlDataSource ID="SqlDataSource1" runat="server"
        ConnectionString="<%$ ConnectionStrings:InterBaseConnection %>"
        DeleteCommand="DELETE FROM kimdir WHERE (kimid = ?)"
        InsertCommand="INSERT INTO kimdir (kim, kimdir) VALUES (?, ?)"
        ProviderName="<%$ ConnectionStrings:InterBaseConnection.ProviderName %>"
        SelectCommand="SELECT * FROM kimdir"
        UpdateCommand="UPDATE kimdir SET kim = ?, kimdir = ? WHERE (kimid = ?)">
     </asp:SqlDataSource>   
<!-- Commands Sql DataSource -->
Sql Data Source kullanarak veriye direk erişim sağlamak istediğimizde bunu SqlCommand Sql komutlarını belirterek yada Database içerisinde hazırladığımız "Stored Procedure" isimlerini belirterek kullanabiliriz.Yukarıda kod blogunda Sql komutlarımı SqlDataSource içerisinde belirtim.Bu komutlar elbette ilk resimde gördüğünüz Interbase veritabanımda bulunan KIMDIR adlı table içindir.

Web.Config ve Sql Data Source:
Ms Sql - Ms Acces veritabanları ile Sql Data Source kullandığımızda olduğu gibi, yukarıdaki kod içerisinde bulunan ConnectionStrings:InterbaseConnetion ve ConnectionStrings:InterBaseConnection.ProviderName dizimi Web.config dosyamızda bulunan <connectionStrings> içerisindeki yapılandırmayı işaret etmektedir.Biz web config dosyamızı yapılandırmadık ! Evet bunu Visual Studio Server Explorer kısmında Add Connection ile veri kaynağı ve provider seçimini yaptığımız resimlerde görülen işlemleri yaptığımızda bizim için oluşturulmuştu.
İçeriği ise şu şekilde oluşturulmuş oldu....

<connectionStrings>
  <clear />
  <add name="InterBaseConnection"
       connectionString="Provider=LCPI.IBProvider.3;Data Source=InterBaseTestDB;Password=masterkey;User ID=SYSDBA;Location=LOCALHOST:C:\Working\Databases\Interbase\DATA.GDB;ctype=WIN1254;auto_commit=True;dbclient_library=gds32.dll"
   providerName="System.Data.OleDb" />
 </connectionStrings>

FormView - Sql Data Source:
Sıradaki ve son işlemlerden olan Web Form içinde edineceğimiz FormView kontrolünü Sql Data Source ile bağlantı kurduğumuzda artık kayıt işlemlerimiz için Asp.Net Web Uygulamamızı hazır hale getirebiliriz.Basit Html kodları izlemek için +expand source' a tıklamalısınız...
  <asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1"
            DefaultMode="Insert" Width="500px">
            <InsertItemTemplate>
                <table>
                    <tr>
                        <td>Kim:</td>
                        <td><asp:TextBox ID="Kim_txt" runat="server" Text='<%# Bind("kim") %>' Width="250" /></td>
                    </tr>
                   <tr>
                        <td>Kimdir:</td>
                        <td><asp:TextBox ID="Kimdir_txt" runat="server" Text='<%# Bind("kimdir") %>' TextMode="MultiLine" Width="250" Height="150"/></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><asp:Button ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
                                Text="Kaydet" />
                        </td>
                    </tr>
                </table>
            </InsertItemTemplate>
        </asp:FormView>

Burada dikkat etmemiz gereken şey FormView kontrolünde bulunan DataSourceID="SqlDataSource1" ile SqlDataSource ID="SqlDataSource1" yapılandırmamızın bağlantılı olduğudur.Tüm bu yaptıklarımızdan sonra küçük bir Test yapabiliriz.Sonuçları izlemek için projemize birde aynı SqlDataSource kaynağa bağlı birde GridView eklersek daha anlamlı olacaktır ki bende bu şekilde yaptım.

Web Uygulamımızı Test Ediyoruz:


Kimdir web uygulmamızda küçük bir kayıt örneği ile Serkan Şenyüz isimli geliştiricimizden övgüyle bahsediyor ve kaydımızı ekliyoruz...
Görüldüğü gibi aynı SqlDataSource veri kaynağına bağlı GridView içerisinde kaydımız Interbase veritabanına kaydımız alınmış oldu.

İyi güzel oldu testimizide yaptık fakat hani bu uygulamada "Stored Procedure" dediğinizi duyar gibiyim.İşte tam burada SqlDataSource kod içerisindeki Sql Komutlar yerine aşağıdaki gibi yapılandırma yapar ve veritabanımız içindeki Stored Procedure isimlerini belirtirsek, bu kez yordamlar sayesinde verilerimiz eklenmiş olacaktır.
<!-- Stored Procedure - Sql DataSource -->
   <asp:SqlDataSource ID="ConnectionSource" runat="server"
        ConnectionString="<%$ ConnectionStrings:InterBaseConnection %>"
        InsertCommand="KIMDIR_I" InsertCommandType="StoredProcedure"
        ProviderName="<%$ ConnectionStrings:InterBaseConnection.ProviderName %>"
        SelectCommand="KIMDIR_S" SelectCommandType="StoredProcedure">
        <InsertParameters>
            <asp:Parameter Name="kim" Type="String" />
            <asp:Parameter Name="kimdir" Type="String" />
        </InsertParameters>
    </asp:SqlDataSource>
    <!-- Stored Procedure - Sql DataSource -->

      Bu Yazının Sponsorları













Yorumlar

Bu blogdaki popüler yayınlar

Firebird SQL Table oluşturma ve SQL komutları

2 nci  Firebird SQL veritabanı blogunda bu kez mevcut Firebird veritabanına ISQL ile bağlanmayı veritabanı nesnelerini oluşturmayı (create table), Kayıt eklemeyi (ınsert) ve kayıtları izlemeyi (show) ile önemli SQL komutlarını anlatmaya çalışacağım...

Firebird Veritabanı Nedir ? Nasıl Kullanılır

Firebird ücretsiz veritabanı kullanmaya ne dersiniz.Üstelik hiç bir süre ve veri sınırı olmadan kulağa hoş geliyor değilmi.Bu Blogta Borland açık kaynak interbase 6 sürümünden sonra ortaya çıkmış ve gelişimini sürekli sürdürmüş Firebird veritabanına bir göz atıcaz. İnternet üzerinde Firebird ile kaynağa çok sık rastlamazsınız artık bu blogtan Firebird ile ilgili bilgileri takip edebilirsiniz...

Asp.Net Access veritabanina resim ve nesne kaydetmek OLE Nesnesi

Ms Access ile ilgili geçmiş yazılarım arasında biraz vakit geçirmişseniz, Ms Access form uygulamaları yada veritabanı olarak kullanmayı sevdiğimi anlamışsınızdır. Birazdan size anlatmaya çalışacağım konu Ms Access veritabanı olarak kullandığımız bir Asp.Net Web projesinde resimleri ve dosyaları paket halinde veritabanının içine gömmek olacak.Neden bilmiyorum bu konuda Türkçe kaynak yok, merak etmeyin bu yazı size iyi gelecek...