ANASAYFA | OYUNLAR | YEMEK TARIFLERI | Magazin Haberleri | FIKRALAR | BIYOGRAFILER | HIKAYELER | FORUM

ARA :    |   Faydalı Bilgiler  Makale EKLE

Sıralama :  A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z -

 
Genel  Bilgisayar  Sağlık  Bilim  Dini Bilgiler  Msn Messenger Yardim  Windows Live Messenger Yardım  Kişisel Gelişim  Google  PHP  ASP  Web Tasarım  HTML  Photoshop  CSS  Java Script  Java - JDBC   XML  Corel Draw  MYSQL  Webmaster  Internet  Güvenlik  Bilgisayar ve Donanım Dersleri  Arama Motorları (SEO)  PHP-NUKE  Joomla  Oracle  SQLServer  Kültür ve Sanat   Müzik   Sinema   Edebiyat / Kitap   Müze   YAŞAM   SPOR   Eğitim   Otomobil   Genç  FotoGaleri  Galeri video ve Analiz  Galeri Haber  FotoGaleri Sıcak ve Yaşam haberleri  Tüm İcatlar ve keşifler  Bunları Biliyormuydunuz  Sizllerden ve Bizden Gelenler Güncel Haber  rüya tabirleri Sözlüğü  Mizah  Kuraldışı Yaşamak  Tarihte Bugün  imsakiye iftar ve sahur vakitleri  Erkek ve kadın ilişkileri  Birazda Gülelim  Alternatif Tarih  Başarı Öyküleri  Gölgelerden Aydınlığa   
ADO - Connection (Bölüm 2)
ADO - Connection (Bölüm 2)


Bu yazıyı okumadan önce http://www.findikkurdu.com/Article.aspx?ID=49 yazısını okduğunuzdan emin olunuz.

Önceki yazımızda ADO´ya giriş yapmıştık ve bu yazımızda "Connection" nesnesine giriş yapıcağımızı belirtmiştik. "Connection" nesnesi bizi veritabanımıza bağlayan nesnedir.  Ayrıca veritabanı üzerinde yapacağımız bir takım işlemleri de "Connection" nesnesi üzerinden götüreceğiz.

Öncelikle bir "Connection" nesnesi oluşturacağız;

KOD:

<%
SET objConn = Server.CreateObject("ADODB.Connection")
%>

Yazılarımızda kullanım sıramızı dikkate aldığımız için öncelikle veritabanımıza bağlanmamız gerekiyor. Veritabanımıza bağlanmamız için bir "ConnectionString" (bağlantı cümleciği)oluşturmamız gerekiyor. Bağlantı cümleciği "Connection" nesnemize hangi türdeki veritabanına, hangi arayüzü ve hangi ayarları kullanarak bağlanacağını belirtmemizi sağlar. Yani bu da demek oluyor ki her veritabanı türünün bağlantı cümleciği farklıdır.  Hatta aynı veritabanı türünün birden çok bağlantı cümleciği bile olabilir. 

ODBC için DSN ve DSN-Less bağlantı cümleciklerimiz vardır. Bu şu anlama geliyor bağlantı adı  kullanarak veritabanına bağlanmak veya veritabanı adresi kullanarak veritabanına bağlanmak (DSN-Less).

Ancak ODBC´nin eski bir teknoloji olduğunu vurgulamakta yarar var. Çünkü artık OLE DB var. Veritabanımıza OLE  DB kullanarak bağlanmaya tercih ediniz.

Sık kullanacağınız iki bağlantı cümleciğini ele alalım;

Access;
         "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:veritabani.mdb;"
SQL Server;
         "Provider=sqloledb;Data Source=SunucuAdresi;Initial Catalog=VeritabaniAdi;User Id=KullaniciAdi;Password=Sifre;"

Ayrıca diğer bağlantı cümlecikleri için kesinlikle http://www.connectionstrings.com adresini öneririm. Ayrıca kişisel tavsiyem bu cümlecikleri ezberlemeye çalışmayın çünkü tamamen zaman kaybı olucaktır. Elinizin altında bir yere kaydedin ve yeri geldiğinde ordan bakın.

Şimdi veritabanımıza bağlanmanın zamanı gelmiştir;

KOD:

<%
SET objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("veritabani.mdb")
%>


Bu kod şu işlemleri yapmaktadır;
     1. Veritabanı bağlantı nesnemizi oluşturduk.
     2. Veritabanı bağlantı nesnemize "Microsft Jet OLEDB 4.0" arayüzünü kullanarak veritabani.mdb dosyasına bağlanmasını söyledik.

"Connection String" belirmek için bir diğer yöntem ise "ConnectionString" "property" sini kullanmaktır.

KOD:

<%
SET objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("veritabani.mdb")
objConn.Open
%>


Ne farkı var diye sorarsanız hiç bir farkı yok. İstediğinizi kullanabilirsiniz.  Artık veritabanımıza bağlandığımıza göre veritabanında işlemler yapmaya başlayabiliriz. Veritabanında işlemler yapmak için SQL (Structed Query Language)  isimli sorgu dilini kullanmaktayız. Bu veri dilinin bazı temel komutları vardır ve bu komutlar hemen hemen tüm veritabanı türlerinde aynıdır. (SELECT, UPDATE, DELETE, INSERT gibi) Ancak bazı ufak farklılıklar ileri düzey kullanımlarda ortaya çıkacaktır. (Şimdi onlara değinerek kafanızı karıştırmak istemiyorum.)  Yazımızın başında da söylediğimiz gibi yazımız tamamen ADO ile ilgilidir ve bu nedenle SQL´e değinmeyeceğim. Ayrıca SQL´i SQL Server ile karıştırmayınız. SQL vakti zamanında IBM tarafından üretilmiş bir sorgulama dilidir. Ancak SQL Server, Microsoft tarafından üretilmiş bir veritabanı sunucusudur.

ADO´da veritabanımızı sorgulamak için "Execute" metodunu kullanırız.

KOD:

<%
SET objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("veritabani.mdb")
objConn.Open
objConn.Execute "INSERT INTO tblVeriler (fldVeri) VALUES (´Merhaba Dünya:P´);"
%>

Bu kod veritabanındaki "tblVeriler" tablosuna veri eklememizi sağladı.

Düzenli programcılar olarak; veritabanı ile işimiz bittiğinde bağlantımızı kapatmamız gerekiyor:) İşte bu iş için "Close" metodunu kullanmaktayız. Ayrıca nesnemizi hafızadan temizlememiz de performans artışı sağlayacaktır. 

KOD:

<%
SET objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("veritabani.mdb")
objConn.Open
objConn.Execute "INSERT INTO tblVeriler (fldVeri) VALUES (´Merhaba Dünya:P´);"
objConn.Close
SET objConn = Nothing
%>

"Connection" nesnesi ile yapabileceğimiz temel işlemler bunlar.  Bu yazının devamı ileri-düzey konuları ve detay kısmını ele almaktadır.

"Connection" nesnesi bize bağlandığımız veritabanının "schema"´sını (şema) almamızı sağlar. Şema derken, veritabanındaki tablo ve alanların (field) listesini kastediyoruz. "OpenSchema" bize bir "RecordSet" döndürüyor. "OpenSchema" metodunun bir adet parametresi bulunmaktadır. Bu parametre şema türünü belirtmeye yaramaktadır. Toplamda 46 adet şema türü olmasına rağmen OLE DB sadece 3 adetini desteklemektedir. Biz ise genel olarak iki tanesini kullanacağız. Üçüncüsüne hiç değinmeyeceğiz bile.

İlk kullanacağımız şema türü "adSchemaTables"  değeri ise "20" dir. Bize tablonun ismi ve türünü döner. (Türü derken kullanıcı tarafından mı yaratıldığı yoksa veritabanın sisteminde varolan bir tablo mu olduğu) Bu şema türünde "TABLE_NAME" ve "TABLE_TYPE" alanları döner.

İkinci kullanacağımız şema türü ise "adSchemaColumns" değeri ise "4" dür. Bize sütunların ismini ve hangi tabloya ait olduğunu döner. Bu şema türünde "TABLE_NAME" ve "COLUMN_NAME" alanları döner.
 

KOD:

<%
SET objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("veritabani.mdb")
objConn.Open
SET objRS = objConn.OpenSchema(4)
objConn.Close
SET objConn = Nothing
%>

Geri kalan işlemler "RecordSet" ile ilgili olduğu için bu konuyu burada bırakacağım. Ancak eğer diğer şema trlerini görme istiyorsanız;

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcstschemaenum.asp

"Connection" nesnesinin bir "property"si ise "State"´dir. Bağlantımızın ne durumda olduğunu bu özellik yardımıyla öğreniyoruz. Bu özellik bize şu değerleri döner;

Bağlı Değil = 0
Bağlı          = 1
Bağlanıyor = 2 

KOD:

<%
SET objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("veritabani.mdb")
objConn.Open

IF objConn.State = 1 THEN objConn.Close ´  Bağlı ise bağlantıyı kesmesini söylüyoruz.
SET objConn = Nothing
%>

"CursorLocation"  "property" si ise kayıtlarımızın nerede işleneceğini belirler. İki türü vardır "Client" ve "Server".

"Client" olarak belirlendiğinde veritabanı sunucumuz verileri OLE DB, ODBC ile istemciye gönderir. Veriler istemcinin sanal hafızasında saklanır ve istemci kendi ihtiyacı olanları kullanır.

"Server" olarak belirlendiğinde ise veriler, veritabanı sunucumuzun "Temp" alanında tutulur ve istemciye sadece ihtiyacı olan veriler gönderilir.

"CursorLocation" değeri varsayılan olarak "Server" modundadır ve değiştirmeye de pek gerek yoktur. "Server" moduna almak için "2", "Client" moduna almak için ise "3" değerini kullanacağız.

"Connection" nesnesi ile ilgili olarak bilmeniz gereken birşey ise "native  command" ve "native stored procedure" desteğidir. Yani SQL Server kullanırken bir "Stored Procedure"yi kullanmak için aşağıdaki yöntemi kullanabiliriz;

KOD:

<%
´Veritabanımızda KullaniciEkle adlı bir SP olduğunu varsayalım
SET objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("veritabani.mdb")
objConn.Open
objConn.KullaniciEkle "FiNaRFiN", "Can HANHAN"
objConn.Close
SET objConn = Nothing
%>

Bu yöntemde "Connection" nesnesi parametre türünü kendi belirleyecektir. Bu da bize büyük bir kullanım kolaylığı ve kodlarımız açısından da güzellik sağlamaktadır. Ancak bu kullanım .Net´de problem çıkartmaktadır ve kullanılmaması gerekmektedir.

"Connection" nesnemizi ilgilendiren bir diğer konu ise "transaction" konusudur. Bu konuda anlatacağımız şeyler ilerideki konularımızla çakışacağı için yazı dizimizin sonuna ayrıca bir "ADO ve Transaction"  makalesi ekleyeceğiz.

(Findikkurdu.com)


 Arkadaşınıza gönderin

   
 

  Ekleyen : Alim Ömer ABUL
Okunma Sayısı : 350
Eklenme Tarihi : 31 Ocak 2007, Çarşamba
SONRAKI BILGI : Alak Suresi ile Celb i Muhabbet   
Forum Linki:
HTML Link:
Direkt Link:
Mause ile tıklayın ve Ctrl + C ile kopyalayın
   

 

 
 

 
ONLINE KULLANICI : 8 | 0,09 saniye Sayfa Yüklenme
Copyright © E-hadi.NET by: Bahar YILMAZ & Alim Ömer ABUL, 2006.
Hosting Hizmetleri       Webmaster Pagerank