PDA

View Full Version : سوال: تشخیص نصب بودن SQL Server



behzadkhan
یک شنبه 31 فروردین 1393, 15:53 عصر
با سلام

یکی از مشکلاتی که در موقع اجرای برنامه را روی کامپیوتر مشتری پیش می آید نصب نبودن SQL Server و عدم تشخیص آن از طرف برنامه است.
در این حالت مشتری نمی داند که چرا برنامه کار نمی کند. ولی اگر پیغام مناسبی به کاربر نشان داده شود مشتری علت را متوجه شود. نسبت به رفع آن اقدام می کند.
با عنوان مثال به کاربر بگویید که شما باید نسخه SQL Server 2008 را نصب کنید.

لطفی کدی ارائه دهید که اعمال زیر را انجام دهد:
=========================================
1-برنامه ازکجا تشخیص دهد که SQL Server نصب شده است.

2-چه ورژنی نصب شده.

3-چه نوعی نصب شده(SQLEXPRESS یا ...).

Davidd
یک شنبه 31 فروردین 1393, 16:15 عصر
از آدرس رجيستري HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances ميتوني instance هاي نصب شده روي سيستم بخوني ( مثلا براي سيستم خودم MSSQLSERVER و SQLEXPRESS است) .البته اين آرايه ورژن نصب شده رو نشون نميده و احتمالا جاي ديگه تو رجيستري ميشه پيدا كرد.

behzadkhan
یک شنبه 31 فروردین 1393, 17:03 عصر
از آدرس رجيستري HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances ميتوني instance هاي نصب شده روي سيستم بخوني ( مثلا براي سيستم خودم MSSQLSERVER و SQLEXPRESS است) .البته اين آرايه ورژن نصب شده رو نشون نميده و احتمالا جاي ديگه تو رجيستري ميشه پيدا كرد.

با سلام و تشکر از پاسختان


دوست خوبم کلید
InstalledInstances را در رجیستری پیدا نکردم.

همچنین اگر کدی داشته باشید که این عمل را انجام دهد بهتر می باشد.

با تشکر

Davidd
یک شنبه 31 فروردین 1393, 17:15 عصر
اگه sql نصب نباشه احتمالا اين كليد وجود نداره.
اينم كد :

using Microsoft.Win32;
///
RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
String[] instances = (String[])rk.GetValue("InstalledInstances");

behzadkhan
یک شنبه 31 فروردین 1393, 17:33 عصر
با سلام

سوال:
========================================
این آدرس رجیستری در چه ورژن هایی از ویندوز یکسان می باشد؟
آیا در تمام ویندوز های رایج معتبر است؟
========================================

من اونو در ویندوز xp تست کردم.

با تشکر