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

الأربعاء، 3 مايو 2017

DbDataAdapter Class


فئة موصل بيانات قاعدة البيانات
DbDataAdapter Class 

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

 الاسم الافتراضي لجدول المصدر DefaultSourceTableName:
قيمة هذا الثابت هي Table، وهو الاسم الافتراضي الذي يستخدم عند إضافة جدول إلى مجموعة البيانات. 

 حجم مجموعة أوامر التحديث UpdateBatchSize:
ضع في هذه الخاصية عدد السجلات التي سيقوم موصل البيانات بحفظ تغييراتها في قاعدة البيانات في المرة الواحدة.. هذا مفيد لتقيل عدد دورات الاتصال مع الخادم Round Trips أثناء تحديث قاعدة البيانات، ما يجعل أداء البرنامج أفضل.. لكن عليك أن تراعي أن التعامل مع عدد كبير من السجلات في نفس اللحظة قد يؤدي إلى تقليل الكفاءة (استهلاك ذاكرة أكبر، إرسال بيانات أكثر ووقت انتظار أطول)، لهذا عليك اختيار عدد معقول من السجلات يحقق أفضل أداء.
ولا يمكنك استخدام هذه الخاصية مع آكسيس، لأنه لا يسمح بتنفيذ أكثر من أمر في المرة الواحدة.. لكن يمكنك استخدامها مع سكيويل سيرفر وأوراكل.
والجدول التالي يلخص تأثير القيم المختلفة لهذه الخاصية:
 

1
تحديث سجل واحد في كل مرة.. هذه هي القيمة الافتراضية.
أكبر من 1
تحديث العدد المحدد من السجلات، حيث يتم تكوين استعلام لتحديث كل سجل، ودمج هذه الاستعلامات معا بوضع ; بينها.
0
لا توجد قيود على عدد الأوامر، وهذا معناه استخدام أكبر عدد من الأوامر يمكن لقاعدة البيانات التعامل معه.
أصغر من 1
سيحدث خطأ في البرنامج!

 
وفي حالة استخدام أي قيمة غير الواحد لهذه الخاصية، يجب عليك أن تضع في الخاصية UpdatedRowSource الخاصة بكائن الأمر المستخدم في تنفيذ عملية التحديث القيمة None أو OutputParameters، وإلا حدث خطأ في البرنامج.
 

كما أن هذه الفئة تضيف عدة صيغ جديدة لكل من الوسيلتين Fill و FillSchema.. دعنا نتعرف على هذه الصيغ:

 ملء Fill:
تضيف هذه الفئة ثلاث صيغ جديدة إلى هذه الوسيلة، وهي:
1- الصيغة الأولى تستقبل جدول بيانات DataTable لتملأه بالسجلات.. وقد استخدمنا هذه الصيغة في الوسيلة MyDbConnector.GetTable في المشروع DbTasks لملء كائن جدول DataTable بالبيانات وإعادته للمستخدم.. بعد هذا يمكنك إضافة هذا الجدول إلى مجموعة بيانات، أو عرض بياناته مباشرة في جدول عرض، أو تنفيذ أي عملية تريدها عليه.. وستجد في نفس المشروع مثالا على استخدام الوسيلة GetTable، وذلك بضغط الزر "عرض المؤلفين"، الذي يعرض نموذجا جديدا عليه جدول فيه بيانات المؤلفين.
2- الصيغة الثانية تستقبل مجموعة البيانات المراد ملؤها، ونصا يمثل اسم الجدول المضاف إلى مجموعة البيانات.. الكود التالي مثلا سيضيف جدول الكتب إلى مجموعة البيانات بالاسم TblBooks:
DaBooks.Fill(Ds, "TblBooks")
MsgBox(Ds.Tables(0).TableName) 'TblBooks
3- الصيغة الثالثة لها أربعة معاملات، هي بالترتيب:
-      مجموعة البيانات.
-  رقم السجل الذي تريد القراءة بدءا منه، علما بأن أول سجل في الجدول رقمه صفر.
-  أقصى عدد من السجلات تريد قراءته من الجدول.. ولن يحدث خطأ إذا كان الجدول يحتوي على عدد من السجلات أقل من هذا العدد.
-      نص يمثل اسم الجدول في مجموعة البيانات.
4- الصيغة الرابعة تفيدك عندما تريد أخذ جزء من السجلات من أمر تحديد يعيد أكثر من جدول، وهي تستقبل ثلاثة معاملات:
-      رقم السجل الذي تريد القراءة بدءا منه.
-      أقصى عدد من السجلات تريد قراءته من كل جدول.
-  مصفوفة معاملات ParamAray تستقبل مصفوفة جداول DataTable Array، ليمكنك أن ترسل إليها الجداول التي تريد ملأها بالسجلات.
وتعيد هذه الوسيلة عدد السجلات التي تمت إضافتها أو تحديثها في مجموعة البيانات. 

 ملء المخطط FillSchema:
تضيف هذه الفئة صيغتين جديدتين إلى هذه الوسيلة:
1- الصيغة الأولى تستقبل كائن الجدول DataTable المراد ملؤه، وإحدى قيم المرقم SchemaType التي تعرفنا عليها سابقا.
2- الصيغة الثانية تستقبل مجموعة البيانات، وإحدى قيم المرقم SchemaType، واسم الجدول في مجموعة البيانات.
وتعيد كلتا الصيغتين كائن الجدول DataTable الذي تم ملؤه بالسجلات. 

والفئات التالية ترث الفئة DbDataAdapter:
- OdbcDataAdapter Class
- OleDbDataAdapter Class
- SqlDataAdapter Class
- OracleDataAdapter Class
وسنكتفي هنا بالتعرف على الفئة SqlDataAdapter.

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

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

إرسال تعليق

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

صفحة الشاعر