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

الأحد، 15 يناير 2017

فئة أمر سيكويل SqlCommand Class


 فئة أمر سيكويل SqlCommand Class
 

هذه الفئة ترث الفئة DbCommand، وهي مخصصة للتعامل مع أوامر SQL التي يتم تنفيذها على خادم سيكويل سيرفر.

ولحدث إنشاء هذه الفئة أربع صيغ مختلفة:

1- الصيغة الأولى بدون معاملات.

2- والصيغة الثانية لها معامل واحد، يستقبل نص استعلام SQL الذي سيوضع في الخاصية CommandText.

3- والصيغة الثالثة تزيد على الصيغة السابقة بمعامل ثان من النوع SqlConnection، يستقبل كائن الاتصال الذي سيتم تنفيذ الأمر من خلاله.

4- والصيغة الأخيرة تزيد على الصيغة السابقة بمعامل ثالث من النوع SqlTransaction، يستقبل كائن التعامل الذي سيتم تنفيذ الأمر في نطاقه.

وإضافة إلى ما ترثه من الفئة الأم، تمتلك هذه الفئة الخاصيتين التاليتين: 

 التنبيه Notification:
تحدد كائن طلب التنبيه SqlNotificationRequest الذي سيستخدمه كائن الأمر في تلقي التنبيهات من الخادم عند تنفيذ الاستعلام.. وسنتعرف على الفئة SqlNotificationRequest لاحقا. 

 ضم تلقائي إلى قائمة التنبيهات NotificationAutoEnlist:
إذا جعلت قيمة هذه الخاصية True، فسيستقبل كائن الأمر تنبيهات تلقائية من كائن معلومات التبعية SqlDependency.. وتستخدم هذه الخاصية مع صفحات المواقع في ASP.NET لتتيح عرض الصفحة المجهزة Cashed Page إلى أن يأتي تنبيه بحدوث تغير في بعض بياناتها فيتم إنعاشها.. وسنتعرف على الفئة SqlDependency لاحقا. 

وإضافة إلى ما ترثه من الفئة الأم، تمتلك هذه الفئة الوسائل التالية: 

 نسخ Clone:
تعيد كائن SqlCommand جديدا مماثلا في كل شيء للكائن الحالي. 

 تصفير زمن انتظار الأمر ResetCommandTimeout:
تعيد قيمة الخاصية CommandTimeout إلى قيمتها الافتراضية 30 ثانية. 

 "تنفيذ قارئ بيانات XML" ExecuteXmlReader:
تنفذ الأمر، وتعيد كائنا من النوع XMLReader، الذي يحتوي على البيانات بتنسيق XML.. ويجب عليك استخدام هذه الوسيلة في الحالات التالية:
- عند استخدام الفقرة FOR XML في جملة الاستعلام.. هذه الفقرة تعيد ناتج الاستعلام في صورة وثيقة XML.
- عند قراءة عمود نوع بياناته XML.
- عند قراءة عمود نوع بياناته ntext أو nvarchar لكنه يحتوي على بيانات بتنسيق XML.

وتدعم الفئة SqlCommand استخدام العمليات غير المتزامنة Asynchronous Operations لتنفيذ الأمر، وذلك من خلال أزواج الوسائل التالية:
 BeginExecuteXmlReader          EndExecuteXmlReader
 BeginExecuteNonQuery            EndExecuteNonQuery
 BeginExecuteReader          EndExecuteReader
حيث تقوم الوسائل التي تبدأ بالكلمة Begin بتنفيذ الأمر في عملية غير متزامنة، ويمكنك أن ترسل إليها مندوبا عن إجراء Sub يتم استدعاؤه بعد انتهاء العملية لتقرأ فيه البيانات الناتجة.. وتعيد هذه الوسائل كائنا يمثل الواجهة IAsyncResult ليمكنك استخدامه في متابعة العملية، كما يمكن إرساله إلى الوسائل التي تبدأ بالكلمة End (مثل الوسيلة EndExecuteXmlReader) لإنهاء العملية غير المتزامنة والحصول على نتائجها.

وتمتاز العمليات غير المتزامنة بأنها لا توقف تنفيذ البرنامج إلى حين انتهاء إتمام العملية، بل ينتقل التنفيذ إلى السطر التالي مباشرة، بينما ترسل النتائج فور توفرها إلى الدالة الخاصة بالحصول على النتائج Callback Function.. وتقع العمليات غير المتزامنة خارج نطاق هذا الكتاب، وسنتعرف عليها بالتفصيل بإذن الله في كتاب المواضيع المتقدمة في برمجة إطار العمل. 

كما تمتلك الفئة SqlCommand الحدث التالي: 

  اكتملت الجملة StatementCompleted:
ينطلق عند اكتمال تنفيذ جملة الاستعلام الخاصة بكائن الأمر.. والمعامل الثاني e لهذا الحدث من النوع StatementCompletedEventArgs، وهو يمتلك خاصية واحدة هي "عدد السجلات" RecordCount، التي تعيد عدد السجلات التي تأثرت بتنفيذ جملة الاستعلام.

 

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

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

إرسال تعليق

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

صفحة الشاعر