Makale Özeti

Bu yazımızda SMO (SQL Management Objects)'i konu alacağız. Nedir?, Nasıl Kullanılır? gibi sorulara demolarla yanıt bulmaya çalışacağız.

Makale

Bu yazımızda SMO (SQL Management Objects)'i konu alacağız. Nedir?, Nasıl Kullanılır? gibi sorulara demolarla yanıt bulmaya çalışacağız.

SMO sayesinde MS SQL Server 7.0, 8.0(2000) ve 9.0(2005) versiyonlarını yönetebilirsiniz. 6.0 ve 6.5 için ise bazı hataların oluşması sözkonusu.

SMO kullanarak uygulama geliştirebilmek için .Net Framework 2.0'a eklenen bazı namespace leri kullanabiliyor olmanız yeterli;

- Microsoft.SqlServer.DMO.dll - SMO ana sınıflarına erişim sağlar
- Microsoft.SqlServer.ConnectionInfo.dll
- SQL Server instance larına bağlanmayı sağlar

SQL Server'ın eski versiyonlarında Distributed Management Objects adını verdiğimiz ve SQL-DMO olarak adlandırılan teknoloji ile SQL Server'ın yönetimini programlayabiliyorduk. SMO ise SQL-DMO'yuda kapsar bir yapıyla ve çok daha fazla yeni özellikle karşımıza çıkıyor.

Nesne Modeli



SMO sayesinde SQL Server Instancelarına, veratabanlarına, schemalara, stored procedurelere, tablolara ve viewlere erişmeniz ve .Net'in programit gücünü burada kullanmanız mümkün.

Yine SMO sayesinde backup, restore, scripting ve SSIS(SQL Server Integration System) çözümlerine ulaşmanız ve yönetmeniz mümkün.

Service Broker gibi, Notification Services gibi MS SQL Server 2005 servislerine erişmeniz mümkün.

Bunun için yapmanız gereken basit anlamda yaratacağınız bir projenize SMO namespacelerini eklemek;

Visual Basic.Net

Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common


Visual C#.Net

using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;

Şimdi basit bir demo yaparak SMO namespacelerini uygulamalarımızda nasıl kullanabiliriz bunu görelim.

DEMO 1: Bu demoda windows forms application yaratacak ve SQL Server ile ilgili bilgileri messagebox lar içinde görüntüleyeceğiz. Bunun için yeni bir proje yaratalım ve form üzerine sadece bir buton koyalım. Butona tıklamamızın ardından önce SQL Server bağlantımız gerçekleşsin ardından da bağlandığımız SQL Server için bazı bilgileri alalım.

Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common


Public Class Form1
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 
         'Server tipinde bir nesne yaratıyoruz
           'Bu nesne bizim MS SQL Serverımızı temsil ediyor

      Dim myServer As New Server()

    
 'Yeni bir connection nesnesi yaratıyor ve veritabanına bağlanıyoruz
          'Bağlantı için localhost'u kullanacağız.

      Dim conn As ServerConnection = myServer.ConnectionContext
      conn.ServerInstance = "localhost"

     
'Servera bağlanıyoruz
      conn.Connect()

     
'SQL Server bağlantımızı messageboxta görüntülüyoruz
      MessageBox.Show("Connected to localhost")

     
'Sırasıyla bağlandığımız MS SQL Serverın türünü, dilini,
          'işletim sistemini, platformunu, ürün türünü, versiyon numarasını ve hata log path
          'bilgisini messageboxlar kullanarak ekrana getiriyoruz.

      MessageBox.Show("Edition: " & myServer.Information.Edition)
      MessageBox.Show("Language: " & myServer.Information.Language)
      MessageBox.Show("OSVersion: " & myServer.Information.OSVersion)
      MessageBox.Show("Platform: " & myServer.Information.Platform)
      MessageBox.Show("Product: " & myServer.Information.Product)
      MessageBox.Show("Version: " & myServer.Information.VersionString)
      MessageBox.Show("ErrorLogPath: " & myServer.Information.ErrorLogPath)

   End Sub
End Class

Ve elbette ekran görüntülerimiz.

  



Bunlar elbette SMO'nun sadece SQL Server bilgilerini getirdiği özelliklerine örnek gösterilebilir. Bir sonraki yazımızda SMO kullanarak yeni tabloların yaratılması, mevcut tablolara yeni kolonların eklenmesi gibi veritabanı nesneleri ile çalışmaya yönelik tamamen örneklere dayalı olacağız.


Evren AYAN
Microsoft MVP
http://www.evrenayan.net