SQL Management Objects (SMO) 1

SQL Management Objects (SMO) SMO Namespaces Namespace Açıklama Microsoft.SqlServer.Management.Common SQL Server ile bağlantı kurmak için gereken sınıfları içerir. Microsoft.SqlServer.Management.Nmo Notification Services uygulamaları geliştirmek ve yönetmek için gereken sınıfları içerir. Microsoft.SqlServer.Management.Smo SQL Server"ı yönetmek için gerekli sınıfları içerir. Microsoft.SqlServer.Management.Smo.Agent SQL Server Agent"ı kontrol etmek için sınıflar içerir. Microsoft.SqlServer.Management.Smo.Broker Service Broker"ı kontrol etmek için sınıflar içerir. Microsoft.SqlServer.Management.Smo.Mail Database Mail"i kontrol etmek için sınıflar içerir. Microsoft.SqlServer.Management.Smo.RegisteredServers Registered servers"i ve şemaları kontrol etmek için sınıflar içerir. Microsoft.SqlServer.Management.Smo.Wmi SQL Server"in servislerini kontrol etmek için sınıflar içerir. Microsoft.SqlServer.Management.Trace Tracing olaylaını kontol etmek için sınıflar içerir. İlk SMO Uygulamamız SMO"nun ne olduğunu öğrendikten sonra şimdi sıra geldi bir tane SMO uygulaması oluşturmaya. Benim okuduğum yerlerde bu uygulamaları genellikle Console Application olarak yapmışlar ama ben ASP.NET ile yapmayı deneyeceğim. Bunun için bir tane web site projesi oluşturuyorum. Bu uygulamada sadece SQL Server"a bağlanıp SQL Server hakkında bilgi alacağız. Bu işlem için projem de SMO dll"lerine referans vermem gerekiyor. Eğer SQL Server"ı ayarları ile oynamadan kurduysanız ilgili referansları aşağıda belirttiğim yerden bulabilirsiniz. "C:Program FilesMicrosoft SQL Server90SDKAssembliesMicrosoft.SqlServer.ConnectionInfo.dll","C:Program FilesMicrosoft SQL Server90SDKAssembliesMicrosoft.SqlServer.Smo.dll","C:Program FilesMicrosoft SQL Server90SDKAssembliesMicrosoft.SqlServer.SmoEnum.dll","C:Program FilesMicrosoft SQL Server90SDKAssembliesMicrosoft.SqlServer.SqlEnum.dll" Şimdi projemize bu referansları ekleyelim. Bu işlem için Solition Explorer"da projemizin üzeirne sağ tıklayıp menüden Add Reference.. butonuna tıklayalım. Açılan pencereden yukarıda yerlerini belirttiğim dll"leri seçip projemize ekleyelim. Bu işlemde sonra referansları kullanabilmek için sayfamıza eklememiz lazım. Şimdilik sadece iki tane using ifadesi ekleyeceğiz. using Microsoft.SqlServer.Management.Smo;using Microsoft.SqlServer.Management.Common; Using ifadelerini de ekledikten sonra artık ilk SMO uygulamamızı yapmaya hazırız demektir. Dilerseniz SQL Server"in özelliklerini bir label atıp bu label"da görüntüleyelim. Bu işlem için aspx sayfama bir tane label atıp adını LabelSQL olarak değiştiriyorum ve  .cs sayfamda da Page_Load"a aşağıdaki kodları yazıp projeyi derlediğimde herhangi bir problem yoksa SQL Server"in özelliklerini görüyor olacağım. Server server=new Server(); LabelSQL.Text="Ürün: "+server.Information.Product; LabelSQL.Text+="
Platform: "+server.Information.Platform; LabelSQL.Text += "
Instance: " + server.InstanceName; LabelSQL.Text += "
Server Adı: " + server.Name; LabelSQL.Text += "
Dili: " + server.Information.Language; Yandaki resimde SQL Server"ın bilgilerini görüyorsunuz. Server nesnesi ile SQL Server"a bağlanıp gerekli bilgileri aldık. Bağlantıyı oluşturueken connect() veya disconnect() şeklinde bir bir metot kullanmadığımız fark etmiş olmalısınız. SMO otomatik olarak bağlantıları açar ve kapatır. Server nesnesinin yapılandırıcısının üç adet overload metodu vardır. Bunlardan ilki az önce kullandığımız herhangi bir parametre almayan metodu, varsayılan ConnectionString ile server"a bağlanır ve gerekli bilgileri alır. İkinci metot içine server"ın adını alarak SQL Server"a bağlanır. Şimdi bu ikinci metodu test edelim. Yapacağım tek şey koddaki en üst satırda Server nesnemi oluştururken içine SQL Server"ın ismini yazmak olacak. Yaptığım ufak değişiklikten sonra kodlarım aşağıdaki hali alacak. Server server=new Server(@"BBAS-MOBILESQL2005"); LabelSQL.Text="Ürün: "+server.Information.Product; LabelSQL.Text+="
Platform: "+server.Information.Platform; LabelSQL.Text += "
Instance: " + server.InstanceName; LabelSQL.Text += "
Server Adı: " + server.Name; LabelSQL.Text += "
Dili: " + server.Information.Language; Yandaki resim de kodların yeni halinden sonra döndürülen sonuçları görüyorsunuz. Dikkat ettiyseniz ilk resme göre bilgilerin değiştiğini görüyor olmalısınız. Benim sistemimde iki adet SQL Server kurulu bunlardan ilki ve varsayılan olan SQL Server 2000 diğeri de daha sonra kurduğum ve instance"ı SQL2005 olan SQL Server 2005. Server nesnesine herhangi bir SQL Server belirtmediğimde sistemimde bulunan SQL Server 2000"in bilgileri ve isim belirttiğimde de SQL Server 2005"in bilgileri döndürüldü. Üçüncü metotta ise Server nesnemize bir tane bağlantı nesnesi bildiriyoruz ve bağlantı bu nesnedeki bilgiler doğrultusunda bağlanıyor. Kodları biraz daha değiştirip sistemimde bulunan SQL Server 2005" SQL Server Authentication ile bağlanmayı deneyeceğim. Bunun için Server nesnesinden önce bir tane ServerConnection nesnesi oluşturup bu nesnenin bilgilerini ayarlıyorum. Aşağıda kodların yeni halini görüyorsunuz. ServerConnection conn = new ServerConnection(@"BBAS-MOBILESQL2005"); //ServerConnection nesnemizi tanımladık. conn.LoginSecure = false;//SQL Server Authentication kullanacağımızı belirttik. conn.Login = "burak"; conn.Password = "1111"; Server server=new Server(conn);//Server nesnemize hangi connection"ı kullanacağımızı belirttik. LabelSQL.Text="Ürün: "+server.Information.Product; LabelSQL.Text+="
Platform: "+server.Information.Platform; LabelSQL.Text += "
Instance: " + server.InstanceName; LabelSQL.Text += "
Server Adı: " + server.Name; LabelSQL.Text += "
Dili: " + server.Information.Language; Yukarıdaki kodlar ile Server"ımıza SQL Server Authentication ile bağlandık ve SQL Server"ımızın bilgilerini görüntüledik. Bir sonraki makalemde Server"daki Database"leri, tabloları, sütunları vb. nesneleri nasıl görüntüleyeceğimiz ve bu tür nesneleri oluştumayı anlatacağım.  

Döküman Arama

Başlık :

Kapat