Merhaba Webkolog okurları,
Bugün sizlere, C# .NET Framework 4 kullanarak ve
Microsoft Visual Studio 2010 geliştirme ortamında, bir sistemde SQL Server'ın
yüklü olup olmadığını nasıl kontrol edebileceğinizi anlatacağım. Bu, özellikle
veritabanı gerektiren uygulamalar geliştirirken oldukça işinize yarayacak bir
yöntem.
Neden Bu Kontrolü
Yapmalıyız?
Uygulamanızın doğru çalışabilmesi için belirli bir
veritabanı sisteminin (bu durumda SQL Server) kurulu olması gerekebilir.
Kullanıcının sisteminde bu yazılımın olup olmadığını önceden kontrol etmek,
olası hataları ve kullanıcı deneyimini olumsuz etkileyen durumları engellemenize
yardımcı olur. Ayrıca, eğer SQL Server yoksa, kurulum sürecini
otomatikleştirerek kullanıcıya kolaylık sağlayabilirsiniz.
Yöntem: Registry'den
Kontrol
SQL Server kurulum bilgileri, Windows kayıt defterinde
(Registry) saklanır. Bu bilgileri kullanarak, SQL Server'ın yüklü olup
olmadığını kontrol edebiliriz. İşte bu işlemi gerçekleştirecek C# metodu:
private void checkSQL()
{
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names
// Eğer bu bilgisayarda SQL SERVER veya SQLSERVEREXPRESS sürümü yüklendi ise yukarıda regedit bölümünde yüklü SQL SERVER instance'leri yer alacaktır.
string[] yuklusqller = (string[])Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Microsoft SQL Server").GetValue("InstalledInstances");
// Eğer kullanıcının bilgisayarında SQLExpress yüklü değilse
var yukluozellikler = (from s in yuklusqller where s.Contains("SQLEXPR_x64_ENU") select s).FirstOrDefault();
if (yukluozellikler == null)
{
DialogResult sonuc = MessageBox.Show("Programı kullanabilmek için SQLEXPRESS gereklidir. Bu Programı Yüklemek istiyor musunuz?", "UYARI", MessageBoxButtons.YesNo);
if (sonuc == DialogResult.Yes)
{
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\SQLEXPR_x64_ENU.exe";
Process pro = new Process();
pro.StartInfo.FileName = path;
// Aşağıdaki parametreleri SQLEXPRESS setup dosyama göndererek kurulumu başlatırsam kullanıcıya kurulum yeri v.s gibi bilgileri sormayacak ve doğrudan kuruluma geçecektir.
pro.StartInfo.Arguments = "/qb INSTANCENAME=\"SQLEXPRESS\" INSTALLSQLDIR=\"C:\\Program Files\\Microsoft SQL Server\" INSTALLSQLSHAREDDIR=\"C:\\Program Files\\Microsoft SQL Server\" INSTALLSQLDATADIR=\"C:\\Program Files\\Microsoft SQL Server\" ADDLOCAL=\"All\" SQLAUTOSTART=1 SQLBROWSERAUTOSTART=0 SQLBROWSERACCOUNT=\"NT AUTHORITY\\SYSTEM\" SQLACCOUNT=\"NT AUTHORITY\\SYSTEM\" SECURITYMODE=SQL SAPWD=\"\" SQLCOLLATION=\"SQL_Latin1_General_Cp1_CS_AS\" DISABLENETWORKPROTOCOLS=0 ERRORREPORTING=1 ENABLERANU=0";
// Process için pencere oluştur
pro.StartInfo.CreateNoWindow = true;
// Process arka planda çalışsın.
pro.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
pro.Start();
// SQL kurulumu bitene kadar bekle
pro.WaitForExit();
}
else
{
// SQLEXPRESS'i kurmak istemiyorsa programı sonlandır
this.Close();
}
}
}
Metodun Açıklaması:
- Registry'den SQL Instance'larını Almak:
- Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Microsoft
SQL Server").GetValue("InstalledInstances") kodu, kayıt
defterindeki ilgili anahtara giderek, yüklü olan SQL Server
instance'larının listesini bir dizi olarak alır.
- SQL Express Kontrolü:
- yuklusqller dizisi içinde "SQLEXPR_x64_ENU" ifadesini
arayarak, SQL Server Express sürümünün yüklü olup olmadığını kontrol
ediyoruz. Bu kontrolü, uygulamanızın gereksinimlerine göre
değiştirebilirsiniz. Farklı bir sürümü kontrol etmek isterseniz, aranan
dizeyi buna göre ayarlamanız gerekir.
- Yükleme İşlemi (Gerekirse):
- Eğer SQL Server Express yüklü değilse, kullanıcıya bir mesaj kutusu
gösterilir.
- Kullanıcı "Evet" seçeneğini seçerse, önceden indirilmiş
olan SQL Server Express kurulum dosyası (SQLEXPR_x64_ENU.exe) otomatik
olarak çalıştırılır. Burada dikkat edilmesi gereken nokta, path
değişkeninde belirtilen dosyanın, uygulamanın çalıştığı sistemde doğru
konumda olması gerektiğidir. Bu yolu, kendi sisteminizdeki kurulum
dosyasının konumuna göre ayarlamanız önemlidir.
- pro.StartInfo.Arguments satırında, SQL Server Express kurulumuna
özel parametreler gönderilir. Bu parametreler, kurulumun sessiz modda
(kullanıcıya herhangi bir soru sormadan) ve belirli ayarlarla yapılmasını
sağlar. Bu parametreleri, kendi ihtiyaçlarınıza göre özelleştirebilirsiniz.
Örneğin, farklı bir kurulum dizini belirtebilir veya farklı bileşenlerin
kurulmasını sağlayabilirsiniz.
- pro.WaitForExit() metodu, SQL Server kurulum işlemi tamamlanana
kadar uygulamanın beklemesini sağlar. Bu, uygulamanın kurulum bitmeden
çalışmaya başlamasını engeller.
- Uygulamayı Sonlandırma (Gerekirse):
- Kullanıcı SQL Server Express'i kurmak istemezse, uygulama
this.Close() metodu ile sonlandırılır.
Önemli Notlar:
- Bu kod, SQL Server Express 64-bit sürümünü
varsaymaktadır. Farklı bir sürüm kullanıyorsanız, hem dosya adını
(SQLEXPR_x64_ENU.exe) hem de yukluozellikler kontrolündeki dizeyi
("SQLEXPR_x64_ENU") uygun şekilde değiştirmeniz gerekir.
- Kurulum dosyasının (SQLEXPR_x64_ENU.exe) doğru
konumda olduğundan emin olun. Bu dosyanın yolunu, uygulamanızın dağıtımına
uygun şekilde ayarlamanız önemlidir.
- Kayıt defterine erişim, yönetici ayrıcalıkları
gerektirebilir. Uygulamanızın doğru çalışması için gerekli izinlere sahip
olduğundan emin olun.
- Bu kod, temel bir kontrol ve kurulum örneğidir.
Gerçek bir uygulamada, daha kapsamlı hata yönetimi, loglama ve kullanıcı
geri bildirimi mekanizmaları eklemeniz önerilir.
- Bu kod Visual Studio 2010 ve .NET Framework 4.0
ile uyumludur. Daha yeni sürümlerde de benzer şekilde çalışacaktır, ancak
bazı küçük değişiklikler gerekebilir.
- Environment.SpecialFolder.MyDocuments yerine
farklı bir klasör kullanabilirsiniz. Örneğin, uygulamanızın kurulu olduğu
dizini veya geçici bir klasörü kullanabilirsiniz. Önemli olan, kurulum
dosyasının bu konumda bulunmasıdır.
Bu makale umarım SQL Server kontrolü konusunda size yardımcı olmuştur. Webkolog'da bu ve benzeri konularda birçok faydalı bilgi bulabilirsiniz.
Webkolog'u takipte kalın!
Hepinize bol kodlu ve başarılı projeler dilerim!
0 yorum:
Yorum Gönder