فئة أمر سيكويل SqlCommand
Class
هذه
الفئة ترث الفئة DbCommand، وهي مخصصة للتعامل مع أوامر SQL التي يتم تنفيذها على خادم سيكويل سيرفر.
ولحدث
إنشاء هذه الفئة أربع صيغ مختلفة:
1- الصيغة الأولى بدون معاملات.
2- والصيغة الثانية لها
معامل واحد، يستقبل نص استعلام SQL الذي سيوضع في الخاصية CommandText.
3- والصيغة الثالثة تزيد على الصيغة السابقة بمعامل ثان من النوع SqlConnection، يستقبل كائن الاتصال الذي سيتم تنفيذ الأمر من خلاله.
4- والصيغة الأخيرة تزيد على الصيغة السابقة بمعامل ثالث من النوع SqlTransaction، يستقبل كائن التعامل الذي سيتم تنفيذ الأمر في نطاقه.
وإضافة
إلى ما ترثه من الفئة الأم، تمتلك هذه الفئة الخاصيتين التاليتين:
التنبيه Notification:
تحدد كائن طلب التنبيه SqlNotificationRequest الذي سيستخدمه كائن الأمر في تلقي التنبيهات من الخادم عند تنفيذ
الاستعلام.. وسنتعرف على الفئة SqlNotificationRequest لاحقا.
ضم تلقائي إلى قائمة التنبيهات NotificationAutoEnlist:
إذا جعلت قيمة هذه الخاصية True، فسيستقبل كائن الأمر تنبيهات تلقائية من كائن معلومات التبعية SqlDependency.. وتستخدم هذه الخاصية مع صفحات المواقع في ASP.NET لتتيح عرض الصفحة المجهزة Cashed Page إلى أن يأتي تنبيه بحدوث تغير في بعض بياناتها فيتم إنعاشها..
وسنتعرف على الفئة SqlDependency
لاحقا.
وإضافة
إلى ما ترثه من الفئة الأم، تمتلك هذه الفئة الوسائل التالية:
نسخ Clone:
تصفير زمن انتظار الأمر 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.. للتنزيل:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.