C#nedir?com
 
YAZAR HAKKINDA
Feryat Olcay
Feryat Olcay
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
15 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: backup device enterprice kullanacagimiz makalemizde manager myserver object scripti server servera sqldmo veritabani veritabanini yazmaya ADO.NET/SQL Feryat Olcay
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 2.9.2004
Okunma Sayısı : 23139
Yorum Sayısı : 3     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
Conda install environment.yml Package 23.2.2020
Turhal Temizer 'in Blogu
Mac OS/X Removing CUDA 23.2.2020
Burak Selim Şenyurt
Sekiz Saatlik Sonsuz Döngü 23.2.2020
Burak Selim Şenyurt
Switch Case Kullanmadan Kod Yazılabilir mi? 23.2.2020
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
SQL-DMO (Distrubute Management Object) Kütüphanesi
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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
  • Yazılan Yorumlar
  • Yorum Yaz
MAY
28
2012
If I wanted to read an excellent article. Certainly, it would be in the article, this article.Thank you very much.
TEM
5
2010
Arkadaşım çok güzel bir makele olmuş ama linkin ölü bu arada yenilersen daha iyi olur. Kolay gelsin.
EYL
5
2004
Merhaba arkadaslar,java ögrenmek isteyen ögrencilere hangi kitabi tavsiye edebilirsiniz ya da bu konuda herhangi birinizin bir arastirmasi varsa ve bana e-mail ile gönderebilirse iyi olur,tesekkürler
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • 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