المتابعون للمدونة

الأحد، 13 أغسطس 2017

فئة مصنع المزود DbProviderFactory Class


فئة مصنع المزود DbProviderFactory Class 

هذه الفئة أساسية مجردة تجب وراثتها، وهي تمتلك العناصر اللازمة للتعامل مع مزود البيانات الذي خصصت للتعامل معه.
وتمتلك هذه الفئة الخاصية التالية: 

 يمكنه إنشاء عداد لمصدر البيانات CanCreateDataSourceEnumerator:
تعيد True إذا كان مصنع المزود يسمح باستخدام الفئة DbDataSourceEnumerator للمرور عبر كل خوادم البيانات المتاحة.. وسنتعرف على هذه الفئة بعد قليل.

كما تمتلك هذه الفئة الوسائل التالية: 

 إنشاء باني نص الاتصال CreateConnectionStringBuilder:
تعيد باني نص الاتصال من النوع العام DbConnectionStringBuilder، لكنه يكون مخصصا للتعامل مع مزود البيانات الذي أنشأت المصنع الحالي للتعامل معه.

 

 إنشاء كائن اتصال CreateConnection:
تعيد كائن اتصال من النوع العام DbConnection، لكنه يكون مخصصا للتعامل مع مزود البيانات الذي أنشأت المصنع الحالي للتعامل معه.
لاحظ أن كائن الاتصال الذي ستحصل عليه غير مرتبط بأي نص اتصال، لهذا عليك وضع نص الاتصال في الخاصية ConnectionString الخاصة به قبل محاولة فتح الاتصال. 

 إنشاء كائن أمر CreateCommand:
تعيد كائن أمر من النوع العام DbCommand، لكنه يكون مخصصا للتعامل مع مزود البيانات الذي أنشأت المصنع الحالي للتعامل معه.. وأنت تعرف أنك تستطيع الحصول على قارئ البيانات من كائن الأمر باستدعاء الوسيلة ExecuteReader.
لاحظ أن كائن الأمر الذي ستحصل عليه ليس مرتبطا بأي اتصال، لهذا عليك ربطه بكائن الاتصال الذي حصلت عليه من الوسيلة CreateConnection، وهو ما فعلناه في الدالة CreateCommand في المشروع Factories كالتالي:
Dim Command = Fac.CreateCommand
Command.Connection = Cn
ويمكنك أداء نفس وظيفة هذه الوسيلة، باستخدام الوسيلة CreateCommand الخاصة بكائن الاتصال، وفي هذه الحالة ستختصر السطر الثاني من الكود السابق:
Dim Command = Cn.CreateCommand 

 إنشاء معامل CreateParameter:
تعيد معاملا من النوع العام DbParameter، لكنه يكون مخصصا للتعامل مع مزود البيانات الذي أنشأت المصنع الحالي للتعامل معه.
ويمكنك أداء نفس الوظيفة، باستخدام الوسيلة CreateParameter الخاصة بكائن الأمر. 

 إنشاء موصل بيانات CreateDataAdapter:
تعيد موصل بيانات من النوع العام DbDataAdapter، لكنه يكون مخصصا للتعامل مع مزود البيانات الذي أنشأت المصنع الحالي للتعامل معه.. وقد استخدمنا هذه الوسيلة في الدالة GetTable في المشروع Factories كالتالي:
Dim Table As New DataTable
Dim Da = Fac.CreateDataAdapter
Da.SelectCommand = Cmd
Da.Fill(Table) 

 إنشاء باني أوامر CreateCommandBuilder:
تعيد باني أوامر من النوع العام DbCommandBuilder، لكنه يكون مخصصا للتعامل مع مزود البيانات الذي أنشأت المصنع الحالي للتعامل معه. 

 إنشاء عداد مصادر البيانات CreateDataSourceEnumerator:
تعيد عداد مصادر البيانات من النوع العام DbDataSourceEnumerator، لكنه يكون مخصصا للتعامل مع مزود البيانات الذي أنشأت المصنع الحالي للتعامل معه.. لاحظ أن مزود سيكويل سيرفر هو الوحيد الذي يدعم هذه الإمكانية، لأن قواعد البيانات الخاصة به تعمل على خادم، لهذا ستعيد هذه الوسيلة Nothing إذا استخدمتها مع أي مزود بيانات آخر غير سيكويل سيرفر!
ويمكنك أن تستخدم الخاصية CanCreateDataSourceEnumerator أولا قبل استدعاء هذه الوسيلة، لتعرف إن كان المزود يدعم عداد المصادر أم لا. 

 إنشاء تصريح CreatePermission:
تعيد تصريحا من النوع العام  CodeAccessPermission، لكنه يكون مخصصا للتعامل مع مزود البيانات الذي أنشأت المصنع الحالي للتعامل معه... لاحظ أن الفئة DBDataPermission ترث الفئة CodeAccessPermission، ومنه تشتق فئات التصريح الخاصة بكل مزود بيانات مثل SqlClientPermission.. شرح هذه المواضيع خارج نطاق هذا الكتاب.

وترث الفئات التالية الفئة DbProviderFactory:
- OdbcFactory Class.
- OleDbFactory Class.
- OracleClientFactory Class.
- SqlClientFactory Class.
ولا يوجد جديد في هذه الفئات يستحق شرحه، فهي تملك نفس وسائل الفئة الأم، لكن مع فارق واحد: أنها تعيد أنواعا خاصة بكل مزود، بدلا من الأنواع العامة التي تعيدها وسائل الفئة الأم.

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر