Bu blogta Asp.Net ile Firebird database için, OLE DB, ADO VE ADO.Net teknolojilerini destekleyen ve ücretli olan bir sürücü olan IBProvider kullanarak bir küçük uygulama yapacağım.
Bu uygulamamda sırasıyla şunlar hakkında bazı fikirler edinebileceksiniz.! Asp.Net ile Firebird Ole Db veritabanına IBProvider ile bağlanmak ve Firebird veritabanımda bulunan Stored Procedure(Depolanmış Yordam) çalıştırarak Web Formumdan veriyi kaydetmek olacaktır.
Başlarken;
Daha önceki Firebird ve Interbase veritabanlarını, Asp.Net Web uygulamalarımda kullanmış bunlarla ilgilide yazıları yazmıştım.Firebird ODBC ile yapılabilecek işlemlerin hemen hemen tümünü aşama aşama anlattığım bloglarda şimdi ise Firebird OLE DB türünde bir connection string (bağlantı dizisi) yapacağız.Bu connection string Microsoft .Net Framework OLE DB ve IBProvider sürücüsünü kullacaktır.Aynı şekilde daha önceki yazılarımda Ms Sql için hazırladığımız Stored Procedure bilgilerini bu kez Firebird OLE DB için kullanacağız.
Yukarıda kısaca bahsettiğim konulara henüz göz atmamışsanız şimdi vereceğim linkleri ziyaret etmeniz.Bu konuyu daha iyi anlamanıza yardımcı olacaktır
Asp.Net Web Firebird ODBC ve Firebird ile ilgili tüm bloglar
Asp.Net Web Firebird - Interbase Database ayrıntıları konulu yazılar
Asp.Net Ms Sql Stored Procedure ve TSQL konuları
Neler gerekiyor ;
Microsoft Visual Studio 2010
IBProvider OLE DB & ODBC sürücüsü (Bu adreste trial sürümü mevcut)
Firebird 2.0 olarak tasarladığımız bir veritabanı.
Biraz daha detay;
Birazdan hazırlayacağımız Asp.Net Web uygulamasında yine bir Asp.Net Visual Studio Data araçlarında bulunan SqlDataSource yapılandıracağız.Ayrıca yine FormView içinde Firebird Stored Procedure nasıl kullancağımızıda basitçe görebileceğiz.Fakat öncelikle yukarıda linkini verdiğim IBProvider sürücülerinin 64/32 her hangi birini bilgisayarınıza yada server'ınıza yüklemeni gerekecektir.Zaten bir Firebird yada IB Server kurulumunuz var ise kurulan dizine yeni sürücüleriniz eklenecektir.
Şimdi başlayabiliriz;
1- IBProvider Connection String yapılandırması;
İlk yapmamız gerekenVisual Studio 2010 içerisinde Server Explorer kısmında bulunan Data Connections yardımı ile Add Server seçeneğini kullanarak Data Source kısmındaki sürücümüzü (.Net Framework Data Provider For OLE DB) olduğunu belirtmeliyiz.
Eğer IBProvider yüklemeniz doğru yapılmış ise Sağdaki resimdede gördüğünüz gibi LCPI OLE DB Provider for Interbase [v3] [RC5]
seçeneğini görüyor olmalısınız.
Database location bilgilerinizide Uygulamanızda yada Server veya Bilgisayarınızda bulunan Firebird veritabanımızın nerede olduğunu belirtiyoruz.
Ve tabiki Firebird için varsayılan database şifremizi eğer değiştirmediysek SYSDBA ve masterkey bilgilerinide tamamlıyoruz.
Buraya kadar işlemimiz Visual Studio 2010 içinde yeni bir Database Connection eklemek içindir.Bu işlemi Firebird içindeki Table- View- Stored Procedure- içeriğini görmek, ayrıca web.config işimizide adımlayarak yapmak için yapılandırıyoruz.Şimdi yine bu yapılandırma sonunda Test Connection button'a tıkladığınızda olumlu yanıt olan"Test connection succeeded" görmelisiniz.Eğer yanıt bu değilse yukarıdaki adımları tekrar gözden geçirmelisiniz.
2- Sql Data Source &Web.config Connection String;
Firebird Ole Db ve IBProvider sürücümüzü SqlDataSource ile kullacağımızı söylemiştim.Şimdi ise adımlarla bu işlemi gerçekleştirelim.
Web Form üzerindeki SqlDataSource ve Configre Data Source komutu ile ulaştığımız Wizard içinde şu görünümü aldığımda aynı zamanda web.config içindede bu bağlantı dizesi oluşmuş olacaktır.Burada dikkat etmemiz gereken şey Data Source kısmındaki bilginin daha önce tanımladığımız Data Location dizinini işaret ediyor olmasıdır.
Sql Data Source için yapılandırmama devam ederken bir önceki yapılandırmadan sonra seçmem gereken Select Statement içinde "Stored Procedure" seçeneği seçmek olacaktır.Bunun nedeni Firebird veritabanım içinde TEST1_I adında Insert Procedure olduğunu ve kayıt ekleme işleminin Stored Procedure ile gerçekleştireceğimi ayrıca bir Sql cümlesi yazmak istemediğimi belirtiyorum.Artık web.config dosyasındaki connection string durumunu kontrol edebiliriz.Aşağıdaki türden bir bağlantı dizise doğru olacaktır.
3-SqlDatsSource - Form view ve Stored Procedure kullanımı hazırlayalım;
-SqlDataSource Html
<asp:SqlDataSource ID="FirebirdOLEDBSource" runat="server" ConnectionString="<%$ ConnectionStrings:FirebirdOLEDB %>"
InsertCommand="TEST01_I" InsertCommandType="StoredProcedure" ProviderName="<%$ ConnectionStrings:FirebirdOLEDB.ProviderName %>">
<InsertParameters>
<asp:Parameter Name="UNAME" Type="String" />
<asp:Parameter Name="USNAME" Type="String" />
<asp:Parameter Name="UNUMBER" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
-FormView Html
<asp:FormView ID="FormView1" runat="server" DataSourceID="FirebirdOLEDBSource" DefaultMode="Insert">
<InsertItemTemplate>
<asp:TextBox ID="UNAMETextBox" runat="server" Text='<%# Bind("UNAME") %>' />
<asp:TextBox ID="USNAMETextBox" runat="server" Text='<%# Bind("USNAME") %>' />
<asp:TextBox ID="UNUMBERTextBox" runat="server" Text='<%# Bind("UNUMBER") %>' />
<asp:Button ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
Text="Insert" />
</InsertItemTemplate>
</asp:FormView>
Web form içerisindeki bu kod diziminden sonra geride yapmamız gereken tek işlem artık bu yapılandırmalarımızı test etmek olacaktır.İstersek yeni bir SqlData Source ekleyerek bu kaynağıda GridView için kulanabilir yada mevcut SqlDataSource bağlantımızı yeni bir GridView ilede eşletirebiliriz.
Asp.Net Web Firebird Ole Db Stored Procedure Insert Procedure
4- Son ayrıntılar;
Bu uygulamamda sırasıyla şunlar hakkında bazı fikirler edinebileceksiniz.! Asp.Net ile Firebird Ole Db veritabanına IBProvider ile bağlanmak ve Firebird veritabanımda bulunan Stored Procedure(Depolanmış Yordam) çalıştırarak Web Formumdan veriyi kaydetmek olacaktır.
Başlarken;
Daha önceki Firebird ve Interbase veritabanlarını, Asp.Net Web uygulamalarımda kullanmış bunlarla ilgilide yazıları yazmıştım.Firebird ODBC ile yapılabilecek işlemlerin hemen hemen tümünü aşama aşama anlattığım bloglarda şimdi ise Firebird OLE DB türünde bir connection string (bağlantı dizisi) yapacağız.Bu connection string Microsoft .Net Framework OLE DB ve IBProvider sürücüsünü kullacaktır.Aynı şekilde daha önceki yazılarımda Ms Sql için hazırladığımız Stored Procedure bilgilerini bu kez Firebird OLE DB için kullanacağız.
Yukarıda kısaca bahsettiğim konulara henüz göz atmamışsanız şimdi vereceğim linkleri ziyaret etmeniz.Bu konuyu daha iyi anlamanıza yardımcı olacaktır
Asp.Net Web Firebird ODBC ve Firebird ile ilgili tüm bloglar
Asp.Net Web Firebird - Interbase Database ayrıntıları konulu yazılar
Asp.Net Ms Sql Stored Procedure ve TSQL konuları
Neler gerekiyor ;
Microsoft Visual Studio 2010
IBProvider OLE DB & ODBC sürücüsü (Bu adreste trial sürümü mevcut)
Firebird 2.0 olarak tasarladığımız bir veritabanı.
Biraz daha detay;
Birazdan hazırlayacağımız Asp.Net Web uygulamasında yine bir Asp.Net Visual Studio Data araçlarında bulunan SqlDataSource yapılandıracağız.Ayrıca yine FormView içinde Firebird Stored Procedure nasıl kullancağımızıda basitçe görebileceğiz.Fakat öncelikle yukarıda linkini verdiğim IBProvider sürücülerinin 64/32 her hangi birini bilgisayarınıza yada server'ınıza yüklemeni gerekecektir.Zaten bir Firebird yada IB Server kurulumunuz var ise kurulan dizine yeni sürücüleriniz eklenecektir.
Şimdi başlayabiliriz;
1- IBProvider Connection String yapılandırması;
İlk yapmamız gerekenVisual Studio 2010 içerisinde Server Explorer kısmında bulunan Data Connections yardımı ile Add Server seçeneğini kullanarak Data Source kısmındaki sürücümüzü (.Net Framework Data Provider For OLE DB) olduğunu belirtmeliyiz.
Eğer IBProvider yüklemeniz doğru yapılmış ise Sağdaki resimdede gördüğünüz gibi LCPI OLE DB Provider for Interbase [v3] [RC5]
seçeneğini görüyor olmalısınız.
Database location bilgilerinizide Uygulamanızda yada Server veya Bilgisayarınızda bulunan Firebird veritabanımızın nerede olduğunu belirtiyoruz.
Ve tabiki Firebird için varsayılan database şifremizi eğer değiştirmediysek SYSDBA ve masterkey bilgilerinide tamamlıyoruz.
Buraya kadar işlemimiz Visual Studio 2010 içinde yeni bir Database Connection eklemek içindir.Bu işlemi Firebird içindeki Table- View- Stored Procedure- içeriğini görmek, ayrıca web.config işimizide adımlayarak yapmak için yapılandırıyoruz.Şimdi yine bu yapılandırma sonunda Test Connection button'a tıkladığınızda olumlu yanıt olan"Test connection succeeded" görmelisiniz.Eğer yanıt bu değilse yukarıdaki adımları tekrar gözden geçirmelisiniz.
2- Sql Data Source &Web.config Connection String;
Firebird Ole Db ve IBProvider sürücümüzü SqlDataSource ile kullacağımızı söylemiştim.Şimdi ise adımlarla bu işlemi gerçekleştirelim.
Web Form üzerindeki SqlDataSource ve Configre Data Source komutu ile ulaştığımız Wizard içinde şu görünümü aldığımda aynı zamanda web.config içindede bu bağlantı dizesi oluşmuş olacaktır.Burada dikkat etmemiz gereken şey Data Source kısmındaki bilginin daha önce tanımladığımız Data Location dizinini işaret ediyor olmasıdır.
Sql Data Source için yapılandırmama devam ederken bir önceki yapılandırmadan sonra seçmem gereken Select Statement içinde "Stored Procedure" seçeneği seçmek olacaktır.Bunun nedeni Firebird veritabanım içinde TEST1_I adında Insert Procedure olduğunu ve kayıt ekleme işleminin Stored Procedure ile gerçekleştireceğimi ayrıca bir Sql cümlesi yazmak istemediğimi belirtiyorum.Artık web.config dosyasındaki connection string durumunu kontrol edebiliriz.Aşağıdaki türden bir bağlantı dizise doğru olacaktır.
3-SqlDatsSource - Form view ve Stored Procedure kullanımı hazırlayalım;
-SqlDataSource Html
<asp:SqlDataSource ID="FirebirdOLEDBSource" runat="server" ConnectionString="<%$ ConnectionStrings:FirebirdOLEDB %>"
InsertCommand="TEST01_I" InsertCommandType="StoredProcedure" ProviderName="<%$ ConnectionStrings:FirebirdOLEDB.ProviderName %>">
<InsertParameters>
<asp:Parameter Name="UNAME" Type="String" />
<asp:Parameter Name="USNAME" Type="String" />
<asp:Parameter Name="UNUMBER" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
-FormView Html
<asp:FormView ID="FormView1" runat="server" DataSourceID="FirebirdOLEDBSource" DefaultMode="Insert">
<InsertItemTemplate>
<asp:TextBox ID="UNAMETextBox" runat="server" Text='<%# Bind("UNAME") %>' />
<asp:TextBox ID="USNAMETextBox" runat="server" Text='<%# Bind("USNAME") %>' />
<asp:TextBox ID="UNUMBERTextBox" runat="server" Text='<%# Bind("UNUMBER") %>' />
<asp:Button ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
Text="Insert" />
</InsertItemTemplate>
</asp:FormView>
Web form içerisindeki bu kod diziminden sonra geride yapmamız gereken tek işlem artık bu yapılandırmalarımızı test etmek olacaktır.İstersek yeni bir SqlData Source ekleyerek bu kaynağıda GridView için kulanabilir yada mevcut SqlDataSource bağlantımızı yeni bir GridView ilede eşletirebiliriz.
Asp.Net Web Firebird Ole Db Stored Procedure Insert Procedure
4- Son ayrıntılar;
- Uygulamada bulunan Firebird veritabanında Stored Procedure olmalıdır.Bu örnekte Procedure ismi TEST1_I olarak Insert Sql dizisi içeren Procedure önceden yapılandırılarak örnek gösterilmişdir.
- InterBase 7.5 Manager console çalışır durumda olmalıdır.Firebird Super Server kullanılacak bir uygulamada client fbclient ile Firebird Database create edilmelidir.Bu uygulamada Firebird veritabanı Client Library File gds32.dll yani Interbase Client kullanılmıştır ve sonuç başarılıdır.
Bu Yazının Sponsorları