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

الأربعاء، 1 فبراير 2017

SqlParameter.Offset


 
خاصية الإزاحة SqlParameter.Offset:
تحدد موضع بداية القراءة من الخاصية Value.. وتقاس الإزاحة بعدد الوحدات الثنائية Bytes عند التعامل مع بيانات ثنائية، وبعدد الحروف Characters عند التعامل مع نصوص.. والقيمة الافتراضية هي 0، أي أن القراءة تتم من بداية البيانات.
وتحدد الخاصية Size عدد الحروف أو الوحدات الثنائية التي ستتم قراءتها بدءا من الموضع Offset.. هذا مفيد إذا وضعت في الخاصية Value كما كبيرا من البيانات، وأردت تجزئتها دون الحاجة إلى متغيرات وسيطة وحيل برمجية ملتوية.. في هذه الحالة ستعطي للخاصية Offset مبدئيا القيمة صفر وللخاصية Size الطول الذي تريده (وليكن 100).. بعد هذا تستخدم حلقة تكرار Loop تنفذ فيها الأمر على قاعدة البيانات (حيث سيقرأ الأمر الجزء المحدد فقط في المعامل بدءا من الموضع Offset وبالطول Size)، ومن ثم تزيد قيمة الخاصية Offset بمقدار 100 لقراءة جزء تال.. ويستمر الدوران وتنفيذ هذه العملية إلى أن تتجاوز طول البيانات الموجودة في الخاصية Value.. لاحظ أن هذه الطريقة مناسبة للاستخدام فقط مع الأمر Update.Write.. وستجد مثالا على هذا في الزر Parameter.Offset في المشروع Write Large Data، وهو يسمح لك بإضافة صورة شعار في العمود Logo2 للناشر الثاني.. لاحظ أننا حملنا كل محتويات ملف الصورة مرة واحدة ووضعناها في الخاصية Value للمعامل، ومن ثم أرسلناها إلى قاعدة البيانات على أجزاء صغيرة.. هذه الطريقة تحتوي على عيب كبير، وهو أن الصورة إذا كانت ضخمة جدا، فستستهلك مساحة كبيرة من الذاكرة وقد تسبب بطء البرنامج.. لهذا لا تستخدم هذه الطريقة إلا إذا كان حجم الصورة معقولا، أما إذا كان ضخما، فالأفضل أن تحمل أجزاء من الملف وترسلها إلى قاعدة البيانات بالطريقة التي استخدمناها في الزر Update .Write في نفس البرنامج.
 

 
لمزيد من التفاصيل، انظر الفئة SqlParameter.

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

إرسال تعليق

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

صفحة الشاعر