Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Dokümanlar Sunucu Kurulumları SQL(Structured Query Language) SQL Server,Odbc, Ole Db ,Dao ,Ado


SQL(Structured Query Language) SQL Server,Odbc, Ole Db ,Dao ,Ado

Structured Query Language (SQL)

VERİTABANINA ERİŞİM

Tipik bir iş yeri veri tabanı yüklemesinde, veri tabanının çalıştığı bilgisayarı göremezsiniz. Veritabanı, server odasındaki server’dadır ve siz masaüstü bilgisayarla çalışacaksınızdır. Veritabanıyla bağlantı kurmak için ona ağ üzerinden bağlanmalısınız.

Genelde bağlantınız LAN (yerel ağ bağlantısı) veya WAN (geniş ağ bağlantısı)’la sağlanır. Bilgisayarınız, ağ arayüz kartı ve bu karta takılı ağ kablosuna sahiptir. Bu kartların en yaygını Ethernet adaptörüdür. Bununla beraber Token ring adaptör de kullanabilirsiniz. Ağ arayüz kartı server’la iletişim sağlar (istekte bulunur, cevap alır). İletişim, protokoller adı verilen bir grup sözleşmeye göre yapılır. Bunların en yaygını Transmission Control Protocol / Internet Protocol (TCP/IP)’dir.

Protokoller, ağdaki diğer bilgisayarlarla iletişimi sağlamak için 2 tip isme izin verirler. Her bilgisayar, kendisini ağda belirten, karakterlerden oluşmuş bir string’e sahiptir. Ağdaki bir bilgisayarla iletişim sağlamak isterseniz o bilgisayarın ismini Run diyalog kutusuna yazmanız yeterlidir (Windows’un yerel sürücüde aramaması için başına 2 tane backslash (\\) koymalısınız).

Diğer bir bağlanma yolu da ağ adresiyledir. Ağlar, isimleri adreslere eşlemek için özel servisler kullanırlar. Bunlardan en yaygınları Internet’te kullanılan Domain Name System (DNS) ve Windows altında çalışan Windows Internet Name Service (WINS)’tir. Eğer bunlar çalışmazsa bağlanacağınız bilgisayarın adresini bilmeniz gerekir.

 

SORGULAMA ARACINI KULLANMAK

Bütün veri tabanları değişik tipte sorgulama aracı sunarlar. Windows altında çalışan bütün sorgulama araçları bazı yaygın özelliklere sahiptir. Hepsi de başladıklarında veritabanıyla bağlantıyı sağlamak için bağlantı diyalog kutusunu ekrana çıkarır. Her bir bağlantı penceresi 2 parçadan oluşur: Birisinde SQL sorgusunu yazarsınız, diğerinde de sorgulamanın sonucunu görürsünüz.

SQL Server’ın Query Analyzer aracında bağlantı diyalog kutusunda 3 tip bilgi vardır: Birincisi, server’ın ismi (adresi de kullanılabilir). İkincisi, eğer server durdurulmuşsa yeniden başlatılıp başlatılmayacağı. Sonuncusu da sizi doğrulamak için kullanıcı adı ve şifre.

Genel olarak Windows altında veritabanına bağlantı için 2 yöntem vardır: ODBC kullanmak veya OLE DB kullanmak. (SQL Server Query Analyzer her iki yöntemi de desteklemektedir.)

 

ODBC’Yİ KULLANMAK

Her veritabanı satıcısının veritabanına bağlanmak, login olmak ve sorgu yollamada kendine has aracı vardı. Kurumlar için karışıklıktan düzenin daha anlamlı olduğu düşünülmüş ve Microsoft ile büyük satıcılar Open Database Connectivity (ODBC) adı verilen stratejiyi geliştirmişlerdir.

ODBC, kullanıcı tarafında veritabanına bağlanmak için standart bir yol, işletim sistemi tarafında her satıcıya veritabanının ihtiyaçlarını karşılamak için kullanıcı tarafından sağlanan bilgiyi çevirmeye izin veren uygulamanın bir katmanı haline geldi.

Denetim Masalarından ODBC applet’ini açtığınızda diyalog kutusunun 3 sekmesini ayarlama ihtiyacı duyarsınız.

Veritabanına bağlantı kurarkenki ilk sorunuz bu 3 sekmeden hangisini kullanacağınız olacaktır. Bağlanmak için Data Source Name (DSN) oluşturmanız gerekir. Eğer bir kullanıcı User DSN oluşturmuşsa bu DSN login olmuş kullanıcıyı bağlar. Eğer siz login olmuşsanız veritabanı bağlantısına erişebilirsiniz. Eğer ben login olmuşsam sizin oluşturduğunuz User DSN’e erişemem. User DSN’ler, değişik kullanıcıların aynı bilgisayarı paylaşması, fakat değişik veri kaynaklarına erişmesi gerektiğinde kullanıma uygun olan bir durumdur.

Bir System DSN, zıttına, sisteme ilişkilendirilmiş veri kaynağı sağlar. Veritabanına herhangi bir kişi kendi kullanıcı ismiyle login olabilir.

File DSN’ler dosyalarda tutulur ve sonuç olarak taşınabilir çapraz sistemlerde file DSN’i başka bir sisteme taşımak sadece dosyayı kopyalamaktan ibarettir. File DSN’ler çok kullanışlıdır. Ayrıca bunları Notepad’le açıp bağlantı stringi’nin bütün bölümlerini kontrol de edebilirsiniz.

DSN oluşturma işlemi her 3 olayda da benzerdir. Biz örnek olması açısından bir System DSN oluşturacağız. Şu adımlar izlenir:

1.      Bağlantınız için kullanacağınız sürücüyü seçin (Biz SQL Server’ı seçtik) ve Finish’e tıklayın.

2.      Bağlantınız için isim giriniz. İsmi, ilerde veri kaynağına bağlanırken kullanacaksınız.

3.      İsteğe bağlı olarak tanımlama girebilirsiniz.

4.      Bağlanacağınız server’ı seçin. İsim yazabileceğiniz gibi drop-down list’ten de seçebilirsiniz.

5.      Kullanmak istediğiniz güvenlik düzenini seçiniz. Windows NT güvenliği varsayılandır ve size Windows NT kullanıcı ismini kullanmanıza olanak tanır. Bu düzende alanınıza bir kez girdiğinizde SQL Server’a bağlanmanıza gerek kalmaz. SQL Server güvenirliliğini seçerseniz veritabanı yöneticisi tarafından oluşturulmuş olan kullanıcı adı ve şifreyi girmek zorunda olursunuz.

6.      Bir sonraki diyalog kutusu, bazı özel parametreleri ayarlamanıza izin verir. Veritabanı yöneticisi size aksini bildirmedikçe varsayılan değerleri kullanınız. Değiştirebileceğiniz değer örneğin, listeden seçebileceğiniz varsayılan veritabanı olabilir.

7.      Son diyalog kutusu size daha ince ayarlar yapmanıza imkan tanır. Veritabanı oturumunuz için log dosyalarını ayarlayabilir, varsayılan şifreleme düzeneğini değiştirebilir veya sistem için kullandığınız dili değiştirebilirsiniz. Genelde varsayılan değerleri değiştirmenize gerek kalmaz. Finish’e tıklayın.

8.      Son diyalog kutusu, bağlantı için kullanacağınız ayarların bir özetini oluşturur. En önemli (kritik) kontrol Test Data Souce düğmesidir. Bağlanabileceğinizden emin olmak için tıklayın. Eğer bağlanamazsanız Cancel diyerek ayarları gözden geçirin. Bağlantı ayarlarını sonlandırmak için OK’e basın.

Bu noktada ODBC kullanarak veritabanına bağlantı sağlamış oldunuz. Şunu unutmayın ki bütün veritabanı satıcıları bu metodu desteklerler.

 

 

OLE DB’Yİ KULLANMAK

ODBC, bilgisayar endüstrisinin veritabanına genel erişimi sağlamada ilk adımıydı. İşletim sisteminiz için ODBC sürücünüz olduğu zaman veritabanına bağlanabilirsiniz. Bununla beraber, işletim sisteminin servislerini kullanarak bağlantı ayarlarını yapmak zorundasınız. Bu da her makine için bağlantı ayarlarının ayrı ayrı yapılması anlamına geliyor. Örnek verirsek, 2000 düğümden oluşan bir ağda 2000 defa bu ayrların yapılması gerekir ki bu da pek kolay bir şey değildir.

Her bir bilgisayar için bağlantı ayarları yapılma zorluğunu aşabilmek için Microsoft umumi veritabanı erişim stratejisi üzerinde durdu. Distributed Internetworking Architecture (DNA)’nın bir parçası olarak herhangi bir veri kaynağına bağlantısız bağlantıları sağlamaya karar verdi. DNA için umumi veri erişiminin arkasındaki kavram, provider olarak bilinen yüklenebilen sürücüydü.

Gerçekte siz bir kullanıcıysanız ODBC Control Panel Applet haricinde direk olarak bağlanamazsınız. Bununla beraber siz bir programcıysanız bağlanabilirsiniz ve bunu yapmak için de ODBC ayarlarını yapmanıza gerek yoktur. Bağlantı string’i provider’ın veritabanı bağlantısını başlatması için gerekli bütün bilgileri içerir. Bu teknolojiyi uygulamak için Microsoft, OLE DB ismini seçti. OLE DB bağlantısı yapmak için olan programlama teknolojisi ActiveX data objects diye anılır.

Bu teknoloji, veritabanına programlama bağlantısı üzerine odaklandığı bağlantının nasıl yapıldığına şimdilik değinmiyoruz.

 

PROGRAMDAN BAĞLANMAK

Veritabanıyla kullanışlı bir iş yapmak için programdan bağlantının nasıl yapılacağını öğrenmelisiniz.

Bağlantı kurmak için veritabanına arayüz kullanmalısınız. Alçak seviyede, makine dili emirleri bağlantı kurar ve programınıza veri servisleri sağlar. Makine dili veya assembler’da yazmak kolay bir iş olmadığından dolayı yüksek seviyeli dillerde güç anlaşılır, karışık formdaki program yazımları basit şekilde tasarlanmıştır. Bellekte veri depolamak için adresleri ve kütükleri yönetmek için şunu yazarız:

Str MyVariable = “Hello World”

Veritabanıyla bağlantı kurmak için özelleştirilmiş bir arayüze ihtiyaç vardır. Veritabanı satıcıları bunları destekler ve bunlara tipik olarak Application Programmming Interfaces (API) adı verilir. API’ler nispeten alçak seviyeli olabilir (programınıza bağlantı kurabileceğiniz ve veriye erişim için çağırabileceğiniz bir grup C dili fonksiyonları gibi). API’ler oldukça yüksek seviyede de olabilirler (Microsoft’un halkın anlayabileceği bir şekle getirdiği nesneya dayalı arayüzler gibi). Alçak seviye arayüzler hız sağlarken, yüksek seviye arayüzler de kolaylık sağlarlar.

 

BAĞLANTI KÜTÜPHANESİNİ KULLANMAK

Alçak seviye arayüze örnek olarak C’de yazılmış ve dosya isimlerinde ODBC içeren bir grup DLL(dynamic-link libraries)’de depolanmış ODBC API’ı verebiliriz. Tipik olarak bu kütüphaneler belirli bir veritabanı erişim programıyla ilişkilendirilmiştir.

Bu dosyalarda içerilen fonksiyonlar fazla değildir. Bunları görmek için en kolay yol Visual Studio development environment’ta içerilen ODBCAPI.BAS’ı açmaktır.

Usüle göre veri tabanına bağlanmak için veritabanı işaretçisine veya handle’a ihtiyaç vardır. Handle elde etmek 2 işlem adımıyla gerçekleştirilir. İlk önce bağlantı kurmak için SQLDriverConnect’i çağırırsınız, ardından handle’ı elde etmek için SQLAllocHandle’ı çağırırsınız. Diğer fonksiyonlar imleci yönetmeye, kayıt kümelerini almaya ve saireye izin verir.

Bir kere uygun dahil edilme işlemini izlediğinizde veriye erişmek için fonksiyonları çağırabilirsiniz. ODBC çağrısını direk olarak kullanarak veritabanına bağlanmanın en kolay yolu SQLDriverConnect fonksiyonunu kullanmaktır. Bu fonksiyonu kullanmak istiyorsanız veritabanına bağlanmak için kullanılacak geçerli bir bağlantı stringi’ne sahip olmanız gerekir. Bağlantı stringi ODBC ile 2 temel biçim alır. İlkinde sürücü ismini ve server ismini aşağıdaki gibi açıkça belirtisiniz:

“DRIVER={SQL Server}; SERVER=AYKUT; UID=sa; PWD=MyPwd;               DATABASE=pubs;”

Bağlantı stringi’nin bu biçiminde sürücü ismi parantez içinde yazılır. Server adı ve ek bağlantı bilgileri düz yazıyla yazılır. Diğer biçimde, ODBC Control Panel applet’ini kullanarak kurduğunuz DSN’in adını kullanırsınız. Bu biçim şu şekilde gözükür:

“DSN=MyRemote; UID=sa; PWD=;”

Bu durumda veritabanı server’ın ve varsayılan veritabanı’nın ismi DSN’de içerilir. Siz sadece DSN’le bağlantı oluştururken kullanacağı kullanıcı adı ve şifreyi string’e ekliyorsunuz.

Gerçek bir bağlantı yapmak için bağlantı stringi’ni bir string değişkende saklamak isteyeceksinizdir. Ardından, SQLDriverConnect fonksiyonunu çağırırsınız ve birkaç önemli parametre aktarılır. Aşağıdaki Visual Basic kodu, nelerin gerekli olduğunu gösteriyor:

Dim strConnectionString As String

strConnectionString= “Driver={SQL Server}; SERVER=AYKUT; UID=sa; PWD=MyPwd; DATABASE=pubs;”

Call SQLDriverConnect(SQL_NULL_HANDLE, Null, strConnectionString, LenB(strConnectionString), vbNullString, 0, 0, SQL_DRIVER_NOPROMPT)

Bu üç deyimin hepsi bağlantı kurmak için gereklidir. İlki string değişken için bellekte yer tahsisi yapar. İkincisi bağlantı stringini değişkene atar. Üçüncüsü de bağlantıyı yapar.

SQLDriverConnect birkaç gizemli parametre gerektirir. İlki, var olan bağlantı için bir handle’dır. Var olan bir bağlantıyı tahsis etmediğimizde, aslında SQLDriverConnect’e bizim var olmayan bir bağlantıyı ona verdiğimiz gerçeği ile baş etmesini anlatan SQL_NULL_HANDLE değerini şart koşmalıyız. İkinicisi, çağrı yapan pencerenin handle’ıdır. Eğer, kullandığımız pencereyle ilişkilendirilmiş bağlantı istiyorsak değer girebiliriz, aksi halde null yazarız. Üçüncü parametre bağlantı stringi’nin kendisidir, dördüncü parametre uzunluğudur. 5. 6. ve 7. parametreler yerleşmiş olan buffer’daki bir string buffer alıcı, uzunluğu ve adresidir. Alıcı bufferlar düşük seviyeli C programlarında yaygındırlar. SQLDriverConnect dönüş bilgilerini bu değişkene yerleştirir ve bu sayede biz, bizimle hangi fonksiyonların bağlantı kurmuş olduklarını görerek kontrol edebiliriz. Bu örnekte buffer kullanmadık, o yüzden null string verdik. Son parametre ise bağlantı kurmaya çalışırken kaybolan bağlantı bilgileri için kullanıcıyı uyarıp uyarmadığını belirten SQLDriverConnect değeridir.

Böylece ODBC kullanarak nasıl bağlantı yapılacağını öğrenmiş oldunuz.

 

DAO’YU KULLANMAK

Microsoft’un veritabanı programcılarına sağladığı ilk arayüz Data Access Objects (DAO) diye anıldı. Kolay kullanımlarından dolayı popüler oldu. Çoğu geliştirici çevreler desteklemeye başladı. DAO, size nesne arayüzü belirten bir referansı projenize eklemenize izin verir.

Eğer veriye erişmek istiyorsanız veritabanı nesnesini kullanmalısınız.

Microsoft dillerinde nesneleri, değişken gibi deklare ederek oluşturursunuz. Veritabanı nesnesini oluşturmak için Visual Basic’te aşağıdaki deyimi yazarız:

Dim dbMyDatabase As DAO.Database

Burada nesneyi deklare ettik ama kullanmak için hazır değiliz. Instantiate, soyut nesneye fiziksel bir varlık verir. DAO Veritabanı nesnesini instantiate yapmak için DAO tip kütüphanesinde tanımlanan metodlardan birini kullanırız. DAO, fazla açıklama gerektirmeden kullanmamıza hazır olan DBEngine diye adlandırılan nesneyi sağlar. Bu nesne veritabanı nesnelerini bizim için instantiate eden OpenDatabase metoduna sahiptir. Visual Basic’te herhangi bir nesneyi instantiate yapmak için Set deyimini kullanırsınız. Veritabanına DAO bağlantısı oluşturmak için şu deyimi kullanın:

Set dbMyDatabase= DBEngine.OpenDatabase(“c:\NorthWind.mdb”)

Bu, yerel dosyada saklanan veritabanı için bağlantı sağlayan en kısa bağlantı biçimidir. OpenDatabase gerçekte 4 parametre alabilir:

* Veritabanı ismi: Veritabanı için bağlantı stringini gösteren veya dosyanın adını veren string’tir.

* Seçenekler: Bağlantı stringi’ndeki kaybolan bilgiler için kullanıcıların uyarılıp uyarılmayacağını belirten sabit değerdir. Mümkün değerler: dbDriverNoPrompt, dbDriverPrompt, dbDriverComplete (gerekli olduğunda diyalog kutusunu gösterir), dbDriverCompleteRequired (daha önce belirtilen seçenekleri geçersiz sayarak gerekli durumlarda diyalog kutusunu gösterir).

* Read-Only: Veritabanı bağlantısını salt okunur yapmak için True, okuma-yazmaya açık yapmak için False seçiniz.

* Connection: Veritabanı ismi parametresinde belirtilmeyen ek bağlantı bilgilerinin yazıldığı string değerdir.

Bütün bilgileri içeren DAO bağlantı deyimi şöyledir:

Set dbMyDatabase = DBEngine.Open Database(“Pubs”, dbDriverPrompt, False, “DRIVER={SQL Server}; SERVER=AYKUT; UID=sa; PWD=MyPwd;”)

 

ADO’YU KULLANMAK

ActiveX Data Objects (ADO), Microsoft’un OLE DB’ye arkadaşlık etmesi için tasarladığı yeni veri erişim stratejisidir. ADO nesneleri veritabanına erişim için değişik bir nesne hiyerarşisi sağlar. Nesnelerin yapısı DAO’ya göre Microsoft Access’e daha az dayalıdır. Ayrıca, çoğu kişiler ADO’yu veritabanıyla ilişkide bulunmak için DAO’dan daha sezgisel bulmaktadırlar.

ADO kullanarak veritabanına bağlantı kurmak için geliştirme projenize referansları eklemelisiniz. Bunu yaptıktan sonra veritabanı bağlantısı istiyorsanız bir bağlantı nesnesi oluşturmalısınız. Bağlantı nesnesinin tek ayarlamanız gereken özelliği vardır (Connection string özelliği). Bu nesnenin bağlantıyı açmak için çağıracağınız Open Metodu vardır. ADO’da bağlantı kurmak için aşağıdaki kodu inceleyelim:

     Dim cnnDatabase As ADODB.Connection

  With cnnDatabase

   .ConnectionString=”Provider=SQLOLEDB.1;Persist “_

     “Security “Info=False;User ID=sa; Initial Catalog=pubs;” _

     “Data Source=Henrys2000”

   .Open

  End With

Bağlantı stringi’ni ayarlamak oldukça açıktır. Bütün bilgiler aynı özellik kümesindedir. Bununla birlikte, bağlantı stringi biraz değişiktir. Burada, Provider’ın ismini vermelisiniz. Provider’lar OLEDB’nin bağlantı kurmak için kullandıkları sürücülerdir.

Bu kod çalıştığında veritabanına bağlantı sağlamış olursunuz.

 

 SONRAKİ SAYFA

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Salı, 04 Ağustos 2009 17:16 )  
amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım