25-03-14, 12:37 PM
السلام عليكم و رحمة الله و بركاته
طالما مثل SQL Server الحل الافضل بالنسبة للمبرمجين لما يحويه من خصائص كثيرة و قوة كبيرة في التعامل مع قواعد البيانات و تعدد المستخدمين و الحل الامثل لبرامج الشبكات باختلاف انواعها.
لكن بقيت المشكلة الكبيرة بالنسبة لنا هي كثرة المشاكل التي نقع فيها بسبب جهلنا في التعامل معه و قلة المصادر التعليمية .
اهم تلك المشاكل غالبا كانت تتمثل في دعم الاصدارات الحديثة لقواعد بيانات منشئة تحت اصدارات سابقة او حتى ربطها , او زرعها و حقنها ضمن اصدارات احدث.
كل تلك المشاكل و غيرها حاول المبرمجون التغلب عليها بالابتعاد عن التعامل مع SQL Server بشكل مباشر و لجؤوا للتعامل مع لغة SQL المعيارية في انشاء قواعدهم تحت اي نسخة SQL Server , طالما كانت كل الاصدارات تدعم هذه اللغة , و هي طريقة جيدة و فعالة في التعامل مع SQL Server مهما كانت نسخته و تؤدي الغرض المطلوب منها .
هدفي هو ليس التعامل مع هذه اللغة المعيارية ضمن بيئة العمل , ففي الاصدارات الحديثة من SQL Server تم دعم هذه المحركات بشكل اكبر ضمن بيئة العمل و اصبح التعامل معها اسهل مما كان عليه في السابق , و اصبحت الكائنات الخاصة به مدعومة بشكل اكبر و تؤدي الغرض المطلوب منها بشكل كامل , مع انها كانت مدعومة في بيئات العمل السابقة مثل VB6 مثلا , و الذي كان يدعم محرك قواعد البيانات SQL Server 2000 و ما قبله ضمن بيئته , و كنا نستخدم كائن SQLDmo في التواصل مع المحرك و الولوج الى كائناته و التعامل معها .
لكن الامر اختلف مع الاصدارات الحديثة من SQL Server و بيئة DotNet , فمنذ الاصدار 2005 اصبح الكائن الجديد في التعامل مع هذا المحرك هو كائن SQLSmo و هذا الكائن الجديد اصبح مدعوما بشكل اكبر من الكائن السابق و التعامل معه اقوى بكثير .
ساقوم في هذا الموضوع بمناقشة بعض المشاكل و عرض الحلول لها , و مناقشة التعامل مع الكائن الجديد SQLSmo في التواصل مع مخدم قواعد البيانات SQL Server , و التي تتضمن اهم النقاط التي نحتاجها مثل:
- عرض السيرفرات المثبة على الجهاز .
-طريقة الدخول للسيرفر سواء كان دخول امن , او دخول تحت اسم مستخدم و كلمة مرور .
-عرض المستخدمين في السيرفر.
-عرض قواعد البيانات في السيرفر , و طرق انشاء قواعد البيانات فيه.
-عرض كائنات قاعدة البيانات (الجداول - الاستعلامات-الاجراءات المخزنة و غيرها)
-طرق انشاء قواعد البيانات و كائناتها , و لكن ليس باستخدام الطريقة التقليدية , اذا ان SQL Server يدعم طرق الانشاء باستخدام السكربتات التي يتم توليدها تلقائيا عند عمل اي كائن في السيرفر و هي طريقة فعالة جدا و لا تحتاج لاي جهد (كل ما ستحتاجه هو سكربت لاي كائن , قاعدة بيانات او جدول او غيره ) ثم اعطاء الامر للسيرفر ليقوم بتنفيذ السكربت .
-انشاء صورة لقاعدة البيانات و استرجاعها كذلك , مع الاشارة الى اختلاف نسخة المخدم كون بعض المشاكل تحدث عند محاولة استرجاع صورة لقاعدة بيانات انشئت تحت اصدار سابق الى قاعدة بيانات منشئة تحت اصدار حديث.
كل هذه الخطوات سيتم التعامل معها ضمن VB.Net ان شاء الله.
طالما مثل SQL Server الحل الافضل بالنسبة للمبرمجين لما يحويه من خصائص كثيرة و قوة كبيرة في التعامل مع قواعد البيانات و تعدد المستخدمين و الحل الامثل لبرامج الشبكات باختلاف انواعها.
لكن بقيت المشكلة الكبيرة بالنسبة لنا هي كثرة المشاكل التي نقع فيها بسبب جهلنا في التعامل معه و قلة المصادر التعليمية .
اهم تلك المشاكل غالبا كانت تتمثل في دعم الاصدارات الحديثة لقواعد بيانات منشئة تحت اصدارات سابقة او حتى ربطها , او زرعها و حقنها ضمن اصدارات احدث.
كل تلك المشاكل و غيرها حاول المبرمجون التغلب عليها بالابتعاد عن التعامل مع SQL Server بشكل مباشر و لجؤوا للتعامل مع لغة SQL المعيارية في انشاء قواعدهم تحت اي نسخة SQL Server , طالما كانت كل الاصدارات تدعم هذه اللغة , و هي طريقة جيدة و فعالة في التعامل مع SQL Server مهما كانت نسخته و تؤدي الغرض المطلوب منها .
هدفي هو ليس التعامل مع هذه اللغة المعيارية ضمن بيئة العمل , ففي الاصدارات الحديثة من SQL Server تم دعم هذه المحركات بشكل اكبر ضمن بيئة العمل و اصبح التعامل معها اسهل مما كان عليه في السابق , و اصبحت الكائنات الخاصة به مدعومة بشكل اكبر و تؤدي الغرض المطلوب منها بشكل كامل , مع انها كانت مدعومة في بيئات العمل السابقة مثل VB6 مثلا , و الذي كان يدعم محرك قواعد البيانات SQL Server 2000 و ما قبله ضمن بيئته , و كنا نستخدم كائن SQLDmo في التواصل مع المحرك و الولوج الى كائناته و التعامل معها .
لكن الامر اختلف مع الاصدارات الحديثة من SQL Server و بيئة DotNet , فمنذ الاصدار 2005 اصبح الكائن الجديد في التعامل مع هذا المحرك هو كائن SQLSmo و هذا الكائن الجديد اصبح مدعوما بشكل اكبر من الكائن السابق و التعامل معه اقوى بكثير .
ساقوم في هذا الموضوع بمناقشة بعض المشاكل و عرض الحلول لها , و مناقشة التعامل مع الكائن الجديد SQLSmo في التواصل مع مخدم قواعد البيانات SQL Server , و التي تتضمن اهم النقاط التي نحتاجها مثل:
- عرض السيرفرات المثبة على الجهاز .
-طريقة الدخول للسيرفر سواء كان دخول امن , او دخول تحت اسم مستخدم و كلمة مرور .
-عرض المستخدمين في السيرفر.
-عرض قواعد البيانات في السيرفر , و طرق انشاء قواعد البيانات فيه.
-عرض كائنات قاعدة البيانات (الجداول - الاستعلامات-الاجراءات المخزنة و غيرها)
-طرق انشاء قواعد البيانات و كائناتها , و لكن ليس باستخدام الطريقة التقليدية , اذا ان SQL Server يدعم طرق الانشاء باستخدام السكربتات التي يتم توليدها تلقائيا عند عمل اي كائن في السيرفر و هي طريقة فعالة جدا و لا تحتاج لاي جهد (كل ما ستحتاجه هو سكربت لاي كائن , قاعدة بيانات او جدول او غيره ) ثم اعطاء الامر للسيرفر ليقوم بتنفيذ السكربت .
-انشاء صورة لقاعدة البيانات و استرجاعها كذلك , مع الاشارة الى اختلاف نسخة المخدم كون بعض المشاكل تحدث عند محاولة استرجاع صورة لقاعدة بيانات انشئت تحت اصدار سابق الى قاعدة بيانات منشئة تحت اصدار حديث.
كل هذه الخطوات سيتم التعامل معها ضمن VB.Net ان شاء الله.
