فئة عداد مصادر البيانات
DbDataSourceEnumerator
Class
هذه
الفئة أساسية مجردة، لكن حتى الآن لا ترثها إلا الفئة SqlDataSourceEnumerator، لأن قواعد بيانات سيكويل سيرفر هي التي تعمل على خادم، سواء أكان
خادما محليا Local
أو بعيدا Remote.
وتتيح
لك هذه الفئة الحصول على معلومات عن الخوادم المتوفرة حاليا على الشبكة التي يتصل
بها جهاز العميل.
وتمتلك
هذه الفئة الوسيلة الوحيدة التالية:
معرفة مصادر البيانات GetDataSources:
تعيد جدول بيانات DataTable، يحتوي على صفوف فيها تفاصيل الخوادم المتاحة.. ويعرض هذا الجدول
الأعمدة التالية:
ServerName
|
اسم
خادم البيانات.
|
InstanceName
|
اسم
النسخة التي تعمل من الخادم.. لاحظ أن سيكويل سيرفر يتيح تشغيل أكثر من نسخة من
الخادم.
|
IsClustered
|
True
إذا كان الخادم جزءا من تجمع Cluster من الخوادم.
|
Version
|
إصدار
الخادم.
|
ويمكنك استخدام هذه الوسيلة لتعرض للمستخدم
قائمة بأسماء الخوادم المتاحة، ليختار الخادم الذي يريد أن يتصل به.. لكن عليك أن
تلاحظ ما يلي:
- هذه
الوسيلة تستهلك وقتا عند تنفيذها، بسبب بحثها عن الخوادم المتاحة على الشبكة.
- ناتج هذه الوسيلة قد يختلف من مرة إلى أخرى، بسبب ظهور بعض
الخوادم أو اختفائها!
- هذه
الوسيلة قد لا تعيد كل الخوادم المتاحة فعلا، لهذا عليك أن تعرض للمستخدم مربع نص
أيضا، ليكتب اسم الخادم بنفسه إذا لم يجده في القائمة.
وقد استخدمنا هذه الوسيلة في المشروع DataProviders لنعرض في الجدول السفلي، الخوادم المتاحة على المزود المحدد في
الجدول العلوي.. لفعل هذا، استخدمنا الحدث RowEnter الخاص بجدول العرض DataGridView، وفيه استخدمنا رقم الصف للحصول على كائن صف البيانات DataRow المناظر له في جدول المزودات، وأرسلنا هذا الصف إلى الوسيلة DbProviderFactories.GetFactory للحصول على مصنع مزود البيانات:
Dim R = TblProviders.Rows(e.RowIndex)
Dim Pf =
DbProviderFactories.GetFactory(R)
بعد هذا استخدمنا الوسيلة CanCreateDataSourceEnumerator للتأكد من أن المزود يتيح عرض الخوادم، ومن استخدمنا الوسيلة CreateDataSourceEnumerator للحصول على عداد الخوادم، ومنه حصلنا على الجدول الذي يحتوي على تفاصيل هذه الخوادم
باستخدام الوسيلة GetDataSources وعرضناه في جدول العرض:
If Pf.CanCreateDataSourceEnumerator
Then
Dim Se =
Pf.CreateDataSourceEnumerator
Dim TblServers = Se.GetDataSources
DgServers.DataSource =
TblServers
Else
DgServers.DataSource =
Nothing
End If
عند تجربة هذا البرنامج على جهازك، لن تظهر أية
خوادم إلا عند اختيار مزود سيكويل سيرفر، حيث سيظهر الخادم المحلي Local
Server المعرف على جهازك (وهو
يمتلك نفس اسم جهازك) وفي الغالب لن يظهر الخادم SQLEXPRESS الذي يعمل على هذا الخادم المحلي!
من
كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.