|
SQL-DMO (Distrubute Management Object) Kütüphanesi |
|
Gönderiliyor lütfen bekleyin... |
|
|
Microsoft’un SQL
Server’ı yapmış olduğumuz programlar içerisinde yönetmek amacı ile bir
COM kütüphanesi eklemiştir.Bu kütüphane SQL_DMO(Distrubute Managment Object)
olarak adlandırılmaktadır.Bu kütüphayi kullanarak SQL Server’a bağlanma , yedekleme
, geri yükleme ve bu gibi sık sık kullanılmakta olon özellikleri program içinde
kullanma imkanı sunmaktadır.SQL Server kulanım açısından oldukça rahat bir veritabınıdır.SQL
Server’ı Enterprise Manager da kullanacağımız veritabanı üzerinde sağ tıklayıp
karşımıza çıkacak olan All Task menüsünden kolaylıkla yönetebiliriz.Bugünkü
makalemizde sık sık kullanmakta olduğumuz özelliklerini örnekler içinde kullanacağız.Bunlar veritabanına
bağlanma,yedek alma , geri yükleme ve var olan bir sql scriptini çalıştırmak
olacaktır.SQL_DMO dll’i SQL Serever kurulduğu zaman otomatik olarak
makinamıza yüklenmektedir.
Şimdi SQL Server
Enterprice Manager da herhangi bir database üzerinde iken sağ tıklayalım ve
All Task da neler olduğuna bakalım.
Şekil1
- SQL Server Enterprice Manager >> All Task
Yukarıdaki menüyü
baz alarak örneklerimizi yazmaya başlayalım.Bizimde kullanacağımız menü aşağıdaki
gibi olsun.
Şekil 2 - Kullanacağımız Menü;
Kodu yazmaya başlamadan
önce SQLDMO kütüphanesini projemize referans olarak eklemeliyiz.Bunun için projenin
Solution Explorer da References >> Add Reference >> COM >>Microsoft
SQLDMO Object Library ’ i eklememiz gerekmektedir.İlk kod örneğimiz bir
server tanıtmak ve tanıttığımız servera bir veritabanı eklemek olacak.Bu örnekte
sadece veritabanı ekledim ama aynı şekilde tablo , view vb nesneleri veritabanına
ekleyip veritabanını servera ekleyebiliriz.
1_Server
ve Veritabanı Oluşturma
SQLDMO.SQLServerClass
myServer = new SQLDMO.SQLServerClass(); //kullanacağım
serverın tanımlanması
myServer.LoginSecure
= true;
myServer.Connect("Yekbun","","");
// sereverın adı ve bağlantı şekli
SQLDMO.DatabaseClass
myDb = new SQLDMO.DatabaseClass(); // kullanacağımız
veritabanı
myDb.Name
= "Yatcilik";
myServer.Databases.Add(myDb);//
Servera oluşturduğumuz veritabanını eklenmesi |
Kod
1 -Sever oluşturma ve veritabanı ekleme;
2_Dışarıdan
SQL Scripti Okuma ve Çalıştırma
Projelerimizde
bazı durumlarda kod içerisinde veritanında bazı değişiklikler yapmak için sql
scripti çalıştırmak zorunda kalabiliyoruz.Bu bir veritabanını baştan yaratma
olabilir yada sadece bir tabloyu oluşturma , tablonun yapısını değiştirme scripti
olabilir.Bu örneğimizde dışarıdan var olan bir sql scripti çalıştırmak olacaktır.
SQLDMO.SQLServerClass
myServer = new SQLDMO.SQLServerClass(); //kullanacağım
serverın tanımlanması
myServer.LoginSecure
= true;
myServer.Connect("Yekbun","","");
//Scripti
çalıştırmak için stream oluşturma
System.IO.StreamReader
sr_Script = new System.IO.StreamReader("C:\\Tekne.sql");
myServer.Databases.Item(8,"").ExecuteImmediate(sr_Script.ReadToEnd(),SQLDMO.SQLDMO_EXEC_TYPE.SQLDMOExec_Default,1000);
sr_Script.Close();
myServer.DisConnect();
|
Kod 2 -Var
olan bir scripti çalıştırma;
3_Yedek
Alma (Backup Database) İşlemi
Veritabanında
sıkça kullandığımız bir olay yedek alma işlemi.SQLDMO bunun içinde oldukça geniş
bir yer ayırmış.Yapılan işlem SQL Server Enterprice Manager da yapılan işleme
çok benzemekte o yüzden neyin nereye konulacağı konusunda çok fazla zorlanmayacaksınız.
SQLDMO.SQLServerClass
myServer = new SQLDMO.SQLServerClass();
myServer.LoginSecure
= true;
myServer.Connect("Yekbun","","");
SQLDMO.BackupClass
myBakup = new SQLDMO.BackupClass();
myBakup.Action
= SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
myBakup.BackupSetDescription
= "Yat yedekleme";
myBakup.Database
= "Yatcilik";
myBakup.BackupSetName
= "Yat_010902"; //Serverda kullanabileceğimiz backup
device nın olup olmadığının kontrolu
if(myServer.BackupDevices.Count
== 0)
{
if(MessageBox.Show(this,"SQL Serverınızda yedek almak için backup
device aracı tanımlı değil.Tanıtmak istermisiniz?","Dikkat",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Information)==
DialogResult.Yes)
{ // SQL Serverda işlem yapılacak device olmaması
durumunda yeni bir backup device in eklenmesi
SQLDMO.BackupDeviceClass myDevis = new SQLDMO.BackupDeviceClass();
myDevis.Name = "Yat_BAKUP";
myDevis.Type = SQLDMO.SQLDMO_DEVICE_TYPE.SQLDMODevice_DiskDump;
myDevis.PhysicalLocation = "C:\\Program Files\\Microsoft SQL Server\\MSSQL\\BACKUP\\Yat_BAKUP.BAK";
myDevis.Type = SQLDMO.SQLDMO_DEVICE_TYPE.SQLDMODevice_DiskDump;
myServer.BackupDevices.Add(myDevis);//tanımlanan
backup device nın servera eklenmesi
}
else
return;
}
myBakup.Devices
= "Yat_BAKUP";
myBakup.SQLBackup(myServer);
myServer.DisConnect(); |
Kod 3 -Yedek
alma işlemi;
4_Geri
Yükleme(Restore Database) İşlemi
Geri yükleme
işlemi var olan bir yedekten verilerimizi ve veritabanımızla ilgili bilgilerimizi
geri yüklenmesini sağlar.
SQLDMO.SQLServerClass
myServer = new SQLDMO.SQLServerClass();
myServer.LoginSecure
= true;
myServer.Connect("Yekbun","","");
SQLDMO.RestoreClass
myRestrore = new SQLDMO.RestoreClass();//geri yükleme
nesnesi tanımlama
myRestrore.Database
="Yatcilik";// işlem yapacağımız veritabanı
myRestrore.Action
= SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;//
hareketin tipi;
if(myServer.BackupDevices.Count
> 0 )
{
myRestrore.Devices = "Yat_BAKUP";
myRestrore.SQLRestore(myServer);
}
else
{
MessageBox.Show("Serverda ilgili backup device mevcut değil..");
return;
}
myServer.DisConnect(); |
Kod 4 -Geri
yükleme işlemi;
5_Script
Oluşturma
Son kod örneğimiz
de sık başvurduğumuz bir olay olan script alma işlemi.
SQLDMO.SQLServerClass
myServer = new SQLDMO.SQLServerClass();
myServer.LoginSecure
= true;
myServer.Connect("Yekbun","","");
Object
FilePath = new object();
FilePath
= "C:\\Tekne1.sql";//dosya yolu
myServer.Databases.Item(8,"").Script(SQLDMO.SQLDMO_SCRIPT_TYPE.SQLDMOScript_Default,FilePath,
SQLDMO.SQLDMO_SCRIPT2_TYPE.SQLDMOScript2_UnicodeFile);//
scripti alış şeklinini belirlenmesi
myServer.DisConnect(); |
Kod 5 -Script
oluşturma;
Bu makalemizde
Microsof’tun bize sunmuş oldu SQLDMO nesnesini inceledik.Faydalı olması dileğiyle.
Yazıda geçen kontrolün kaynak kodunu ve demo uygulamasını buradan indirebilirsiniz.
Makale:
SQL-DMO (Distrubute Management Object) Kütüphanesi ADO.NET ve SQL Feryat Olcay
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|