09-01-22, 10:32 PM
(آخر تعديل لهذه المشاركة : 11-01-22, 03:49 AM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته
اغلبنا يستخدم قواعد البيانات SQL Server في برامجنا وكلنا واجهنا الخطأ المتمثل في ان السيرفر ليس في حالة تشغيل مع انه يتم تشغيله مع اقلاع الويندوز لكن أحيانا لا يتم تشغيله ونفاجأ ان برنامجنا لا يعمل بسبب توقف السيرفر فنضطر الى الدخول الى Services ثم تشغيل السيرفر وهي عملية مقيتة (محبطة قليلا بالنسبة لنا كمبرمجين فما بالكم بالمستخدم العادي)
ومن هنا ارتأيت ان اجد حلا من وجهة نظري يمكننا تضمينه في برامجنا حيث سيتم فحص حالة السيرفر فإن كان متوقفا سيتم تشغيله وان كان في حالة عمل لا يفعل شيء (سيتم برمجة ذلك كل حسب مايراه مناسبا)
المثال التالي هو عبارة عن فورم فيه 2 Button و1 Combobox يتم املاء اسماء السيرفرات فيه اما البوتون فواحد لتشغيل السيرفر والثاني لايقافه
ملاحظات :
- كود جلب أسماء السيرفرات يعمل على 64 بت ومن عنده 32 بت يفعل السطر الموجود في الكود الى 32 بت
- نحتاج الى اضافة الريفرانس ServiceProcess من Assemblies / framework ثم نستدعيه Imports System.ServiceProcess
- اسم السيرفيس لم اجد طريقة لجلبه بالكود وهو عادة يكون MSSQL$SQLSERVER2014 حسب النسخة
او ان كان نسخة اكسبريس MSSQL$SQLEXPRESS سيتم وضعه في المتغير
Dim Service_Name As String = "MSSQL$SQLSERVER2014"
- اسم الكومبيوتر وهو معروف حسب كل كومبيوتر
أتمنى التجربة وابداء الملاحظات وذكر الاخطاء الممكن ظهورها لاني لم اجرب الا على الحاسب خاصتي فقط
اغلبنا يستخدم قواعد البيانات SQL Server في برامجنا وكلنا واجهنا الخطأ المتمثل في ان السيرفر ليس في حالة تشغيل مع انه يتم تشغيله مع اقلاع الويندوز لكن أحيانا لا يتم تشغيله ونفاجأ ان برنامجنا لا يعمل بسبب توقف السيرفر فنضطر الى الدخول الى Services ثم تشغيل السيرفر وهي عملية مقيتة (محبطة قليلا بالنسبة لنا كمبرمجين فما بالكم بالمستخدم العادي)
ومن هنا ارتأيت ان اجد حلا من وجهة نظري يمكننا تضمينه في برامجنا حيث سيتم فحص حالة السيرفر فإن كان متوقفا سيتم تشغيله وان كان في حالة عمل لا يفعل شيء (سيتم برمجة ذلك كل حسب مايراه مناسبا)
المثال التالي هو عبارة عن فورم فيه 2 Button و1 Combobox يتم املاء اسماء السيرفرات فيه اما البوتون فواحد لتشغيل السيرفر والثاني لايقافه
ملاحظات :
- كود جلب أسماء السيرفرات يعمل على 64 بت ومن عنده 32 بت يفعل السطر الموجود في الكود الى 32 بت
- نحتاج الى اضافة الريفرانس ServiceProcess من Assemblies / framework ثم نستدعيه Imports System.ServiceProcess
- اسم السيرفيس لم اجد طريقة لجلبه بالكود وهو عادة يكون MSSQL$SQLSERVER2014 حسب النسخة
او ان كان نسخة اكسبريس MSSQL$SQLEXPRESS سيتم وضعه في المتغير
Dim Service_Name As String = "MSSQL$SQLSERVER2014"
- اسم الكومبيوتر وهو معروف حسب كل كومبيوتر
أتمنى التجربة وابداء الملاحظات وذكر الاخطاء الممكن ظهورها لاني لم اجرب الا على الحاسب خاصتي فقط
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات