Makale Özeti

SQL DMO, MS SQL Server’ın yönetimsel nesne modelini programlarımıza aktarmaya yarayan çok kullanışlı bir modeldir. SQL Server’a yaptırdığımız tüm işlevleri programlanır hale getirmek, SQL DMO ile oldukça kolaydır. Bize düşen DMO’nun nesne modelini çözümlemek ve hayal gücümüzü zorlamaktır.

Makale

SQL DMO(Distributed Management Objects) - Giriş


SQL DMO Nedir?

SQL DMO, Microsoft SQL Server üzerinde yönetimsel işlemler yapabilmeyi sağlayan nesneler kümesidir. SQL DMO; SQL Server üzerinde yapılabilen yönetimsel işlemleri, SQL Server yönetimsel araçlarını kullanmadan yürütebilmemizi sağlamaktadır. Bu yönetimsel işlemlere şunlar örnek verilebilir:

  • Veritabanı ve nesnelerini oluşturmak
  • Yedek alma ve geri yükleme
  • Tablolarda dizin(indeks) oluşturma
  • Görevler(Jobs) atama
  • ...

SQL DMO nesneleri, Microsoft SQL Server’in herhangi bir örneğinin(sunucu veya istemci olabilir.) kurulumunda bilgisayarımıza eklenmektedir. Bu nesnelere tek bir DLL dosyası şeklinde erişebilmek mümkündür. Bu DLL dosyasına (sqldmo.dll),

“{SQL Server kurulum dizini}\80\Tools\Binn\resources\1033\sqldmo.dll”

yolundan erişilebilmektedir.

SQL Server örneklerindeki tüm nesneler ve işlemsel öğeler, SQL DMO için bir nesne ifade etmektedir. Örneğin, yerel bilgisayarımızda kurulu olan SQL Server örneği bir SQL DMO nesnesi olmaktadır. Aynı şekilde bu sunucuda oluşturduğumuz veritabanları, bu veritabanları üzerindeki tablolar ve bu tablolardaki sütunlar da SQL DMO nesneleridir. Şekil 1.1’deki yapı SQL DMO nesnelerinin bir bölümünün hiyerarşisini vermektedir.

Şekil 1.1’de görülebileceği SQL Server veritabanı nesnelerinin hiyerarşik yapısı, SQL DMO’daki nesne karşılıklarına da aynı şekilde yansımıştır. Bu nesnelerin yanında işlemsel öğeler de, örneğin yedek alma, SQL DMO’da nesne olarak değerlendirilmektedir. (Örneğin Backup nesnesi)

 

ÖRNEK UYGULAMA

Bu uygulamamızda; çok sıklıkla kullandığımız, Microsoft SQL Server’a bağlantı kurma ekranını SQL DMO nesneleri ile kendimiz gerçekleyeceğiz.

Uygulama öncelikle ağ üzerindeki tüm MSSQL sunucularını görüntüleyecek ve seçilen sunucunun veritabanlarını belirtilen yetkilendirme tipi (SQL Server Yetkilendirmesi veya Windows Yetkilendirmesi) çerçevesinde görüntüleyecektir.

 

SQL DMO’nun nesnelerine erişebilmek için Add References’dan “{SQL Server kurulum dizini}\80\Tools\Binn\resources\1033\sqldmo.dll” referans olarak eklenmelidir.

 

 

Yerel bir ağ üzerindeki tüm MSSQL sunucularını bize getiren kod parçası aşağıdaki şekildedir.

Kullanıcının seçtiği sunucudaki veritabanlarını, seçilen yetkilendirme çerçevesinde görüntülemeye yarayan kod aşağıdaki şekildedir.

SQLDMO.NameList : Yerel ağdaki MSSQL sunucularının adlarını taşıyan SQLDMO arayüzüdür.
SQLDMO.ApplicationClass : SQLDMO işlemlerim gerçekleyen uygulamayı (sqldmo.dll) temsil eden SQLDMO sınıfıdır.
SQLDMO.ApplicationClass.ListAvailableSQLServers : Yerel ağdaki tüm MSSQL sunucularını bir SQLDMO.NameList olarak sunan SQLDMO.ApplicationClass metodudur.

SQLDMO.SQLServerClass : Bir MSSQL sunucu örneğini temsil eden SQLDMO sınıfıdır.
SQLDMO.SQLServerClass.LoginSecure : Temsil edilen sunucuya hangi yetkilendirme tipiyle girileceğini belirten SQLDMO.SQLServerClass özelliğidir. (Windows yetkilendirmesi için true olmalıdır. Varsayılan değeri false’dır.)
SQLDMO.SQLServerClass.Connect : Belirtilen sunucuya bağlanılmasını sağlayan SQLDMO.SQLServerClass metodudur. Parametre olarak sunucunun adını, kullanıcı adını ve şifreyi almaktadır. (Windows yetkilendirmesi için yalnızca sunucu adını vermek yeterlidir.)

 

SONUÇ

SQL DMO, MS SQL Server’ın yönetimsel nesne modelini programlarımıza aktarmaya yarayan çok kullanışlı bir modeldir. SQL Server’a yaptırdığımız tüm işlevleri programlanır hale getirmek, SQL DMO ile oldukça kolaydır. Bize düşen DMO’nun nesne modelini çözümlemek ve hayal gücümüzü zorlamaktır.

Anıl YÜGEN
anil.yugen@bilgeadam.com Örnek uygulama