اليوم دعونا نتحدث عن خصائص كائن Recordset
1. سمة نوع المؤشر
AdOpenForwardOnly: مؤشر التوجيه فقط، القيمة الافتراضية. مثل المؤشر الثابت، إلا أنه يمكنه فقط التمرير للأمام عبر السجلات. استخدمه لتحسين الأداء عند الحاجة إلى حركة أحادية الاتجاه فقط في مجموعة السجلات. (كما يوحي الاسم، يمكن لهذا المؤشر التحرك للأمام فقط. ومع ذلك، نظرًا لوظائفه المحدودة، فهو فعال للغاية عند استخدامه مع موارد النظام.)
AdOpenKeyset: مؤشر مجموعة المفاتيح. على الرغم من عدم إمكانية الوصول إلى السجلات المحذوفة بواسطة مستخدمين آخرين من مجموعة السجلات الخاصة بك، إلا أن مؤشرات مجموعة المفاتيح تشبه المؤشرات الديناميكية باستثناء أنه لا يمكن عرض السجلات التي أضافها مستخدمون آخرون. لا يزال من الممكن رؤية البيانات التي تم تغييرها بواسطة مستخدمين آخرين. (يسمح لك مؤشر KeySet برؤية التغييرات التي أجراها مستخدمون آخرون منذ إنشائه، ولكن لا يمكنك رؤية السجلات المضافة أو المحذوفة بواسطة مستخدمين آخرين.)
AdOpenDynamic: المؤشر الديناميكي. يمكنه رؤية الإضافات والتغييرات والحذف التي أجراها مستخدمون آخرون. يُسمح بجميع أنواع النقلات داخل مجموعة السجلات، باستثناء عمليات الإشارة المرجعية التي لا يدعمها الموفر. (هذا النوع من المؤشرات قوي ويستهلك معظم موارد النظام. يمكن للمؤشرات الديناميكية رؤية جميع التغييرات في مجموعات السجلات التي يحفظونها. يمكن للمستخدمين الذين يستخدمون المؤشرات الديناميكية رؤية التعديلات والإضافات والحذف التي أجراها مستخدمون آخرون. إذا كان موفرو البيانات ذلك إن السماح لهذا النوع من المؤشرات بدعم هذه الرؤية من خلال استرداد البيانات من مصدر البيانات على فترات منتظمة سيتطلب بلا شك الكثير من الموارد.)
AdOpenStatic: مؤشر ثابت. نسخة ثابتة من مجموعة السجلات التي يمكن استخدامها للعثور على البيانات أو إنشاء التقارير. بالإضافة إلى ذلك، لا تكون الإضافات أو التغييرات أو عمليات الحذف التي أجراها مستخدمون آخرون مرئية. (مؤشر الفئة الثابتة هو مجرد لقطة من البيانات. أي أنه لا يمكنه رؤية التغييرات التي تم إجراؤها على مجموعة السجلات بواسطة مستخدمين آخرين منذ إنشائها. باستخدام هذا النوع من المؤشر، يمكنك التنقل للأمام والخلف. نظرًا لبساطته، متطلبات الموارد أصغر من الديناميكية!)
ملاحظة: بمجرد فتح مجموعة السجلات، لا يمكنك تغيير خاصية CursorType. ومع ذلك، إذا قمت أولاً بإغلاق مجموعة السجلات، وتغيير خاصية CursorType، ثم إعادة فتح مجموعة السجلات، فلا يزال بإمكانك تغيير نوع المؤشر بشكل فعال!
2. سمة LockType في أي تطبيق قاعدة بيانات يمكن تعديله بواسطة عدة مستخدمين في نفس الوقت، يجب عليك التعامل مع الموقف الذي قد يحدث عندما يعمل عدة مستخدمين على نفس السجل في نفس الوقت. عندما يحدث هذا، يتم اختراق سلامة البيانات لأن أحد المستخدمين قد يقوم دون قصد بالكتابة فوق تغييرات شخص آخر عند حفظ تغييراته الخاصة. ساعتها ستشعر وكأنك لا تفعل شيئاً. للتعامل مع هذا الوضع. يسمح لك ADO بتحديد نوع التحكم في الأحداث المتزامنة عند تحديث كائن مجموعة السجلات، وكيفية تأمين السجلات بواسطة المستخدم أثناء تحريره. يتم تحديد ذلك بواسطة سمة LockType. هذه السمة لها أربع قيم:
adLockReadonly: القيمة الافتراضية، للقراءة فقط. لا يمكن تغيير البيانات. (هذه هي القيمة الافتراضية لمجموعة السجلات. إذا قمت بتعيين طريقة القفل على هذه القيمة، فلن تتمكن من تحديث مجموعة السجلات.)
adLockPessimistic: قفل السجل المحافظ (الدخول عن طريق الإدخال). يقوم الموفر بتنفيذ الإجراءات اللازمة لضمان التحرير الناجح للسجل، عادةً عن طريق تأمين السجل على الفور في مصدر البيانات عند التحرير. (إذا تم التعيين على هذا النوع من القفل، فسيتم قفل السجل ولا يمكن الوصول إليه إلا من قبل المستخدمين الذين يقومون بالتحرير بين وقت بدء التحرير ووقت إرسال تحديث السجل إلى موفر البيانات!)
adLockOptimistic: فتح قفل السجل (سجلًا تلو الآخر). يستخدم الموفر القفل المفتوح، ويقفل السجلات فقط عند استدعاء أسلوب التحديث. (يتم قفل السجلات فقط في لحظة إرسال البيانات إلى موفر البيانات.)
adlockBatchOptimistic: تحديث دفعة مفتوحة. يستخدم لوضع التحديث الدفعي بدلاً من وضع التحديث الفوري. (سيتم تسمية مجموعة السجلات التي تم تعيينها على هذا النوع من وضع القفل بوضع التحديث الدفعي لمجموعة السجلات. ويمكنها تسريع سرعة تحديث مجموعة السجلات لتعديل البيانات، ولكن نظرًا لأنه يتم تحديث سجلات متعددة في نفس الوقت، فسيتم أيضًا تحديثها تفاقم المشاكل المتعلقة بالوصول المتزامن!)
3 ,خاصية الصفحة المطلقة
تقوم السمة المطلقة بتعيين رقم الصفحة التي يوجد بها السجل الحالي؛ استخدم السمة PageSize لتقسيم كائن Recordset إلى صفحات منطقية. عدد السجلات في كل صفحة هو PageSize (باستثناء أن الصفحة الأخيرة قد تحتوي على أقل من PageSize عدد السجلات). ويجب الإشارة هنا إلى أنه ليس كل موفري البيانات يدعمون هذه السمة، لذا استخدمها بحذر.
كما هو الحال في الخاصيةAbsolutePosition، تبدأ الخاصيةAbsolutePage بالرقم 1. إذا كان السجل الحالي هو الصف الأول من Recordset، فإنAbsolutePage هو 1. يمكنك تعيين خاصية "الصفحة المطلقة" للانتقال إلى الصف الأول من السجلات في صفحة محددة.
4. سمة أبسولوتبوسيشن إذا كنت بحاجة إلى تحديد موضع المؤشر الحالي في مجموعة السجلات، يمكنك استخدام سمة أبسولوتبوسيشن.
قيمة سمة أبسولوتبوسيشن هي موضع المؤشر الحالي بالنسبة إلى الصفقة الأولى، بدءا من 1، أي أن أبسولوتبوسيشن للصفقة الأولى هو 1.
لاحظ أنه عند الوصول إلى مجموعة السجلات، ليس هناك ما يضمن ظهور مجموعة السجلات بنفس الترتيب في كل مرة.
لتمكين "AbsolutePosition"، يجب عليك أولاً تعيينه لاستخدام مؤشر العميل (المؤشر): rs.CursorLocation=3
5. سمة PageCount استخدم سمة PageCount لتحديد عدد "صفحات" البيانات التي يتضمنها كائن Recordset. "الصفحة" هنا عبارة عن مجموعة من سجلات البيانات بحجم يساوي إعداد خاصية PageSize. حتى لو كان عدد السجلات في الصفحة الأخيرة أقل من قيمة PageSize، فإن الصفحة الأخيرة تعتبر أيضًا صفحة من. عدد الصفحات. تجدر الإشارة إلى أنه ليس كل موفري البيانات يدعمون هذه السمة.
6. سمة حجم الصفحة
تعد سمة PageSize هي المفتاح لتحديد كيفية عرض الصفحات عندما يصل ADO إلى قاعدة البيانات. ويمكنك استخدامها لتحديد عدد السجلات التي تشكل "صفحة" منطقية. يقوم بتعيين وإنشاء حجم الصفحة الذي يسمح بالانتقال إلى السجل الأول لصفحة منطقية أخرى باستخدام خاصية الصفحة المطلقة. يمكن تعيين الخاصية PageSize في أي وقت.
7. سمة عدد السجلات هذه أيضًا سمة مهمة وشائعة الاستخدام غالبًا ما نستخدم سمة عدد السجلات لمعرفة عدد السجلات التي يحتوي عليها كائن مجموعة السجلات. استخدم الخاصية RecordCount لتحديد عدد السجلات في كائن Recordset. ترجع هذه الخاصية –1 عندما لا يتمكن ADO من تحديد عدد السجلات، أو إذا كان الموفر أو نوع المؤشر لا يدعم RecordCount. قراءة الخاصية RecordCount على مجموعة سجلات مغلقة سوف يؤدي إلى حدوث خطأ. يؤثر نوع المؤشر الخاص بكائن مجموعة السجلات على إمكانية تحديد عدد السجلات. تقوم الخاصية RecordCount بإرجاع -1 لمؤشرات التوجيه فقط، والعدد الفعلي للمؤشرات الثابتة أو مؤشرات مجموعة المفاتيح، و-1 أو العدد الفعلي للمؤشرات الديناميكية اعتمادًا على مصدر البيانات.
8. سمات BOF وEOF. عادةً ما نكتب رمزًا في برنامج ASP للتحقق من سمات BOF وEOF، وذلك لمعرفة موقع مجموعة السجلات التي يشير إليها المؤشر حاليًا. باستخدام سمات BOF وEOF، يمكننا معرفة ما إذا كان أ يحتوي كائن مجموعة السجلات على سجلات أو معرفة ما إذا كان صف السجل المنقول قد تجاوز نطاق كائن مجموعة السجلات.
إذا كان موضع السجل الحالي قبل الصف الأول من كائن مجموعة السجلات، فإن خاصية BOF ترجع صحيحًا، وإلا فإنها ترجع خطأ.
إذا كان موضع السجل الحالي بعد الصف الأخير من كائن مجموعة السجلات، فإن خاصية EOF ترجع صحيحًا، وإلا فإنها ترجع خطأ.
(كلا BOF وEOF صحيحان، مما يشير إلى عدم وجود سجلات في مجموعة السجلات.)
9. تحدد سمة التصفية شروط التصفية للبيانات الموجودة في مجموعة السجلات استخدم سمة التصفية لحظر السجلات في كائن مجموعة السجلات التي تمت تصفيتها بشكل انتقائي سيصبح المؤشر الحالي.
سيؤثر هذا على الخصائص الأخرى المستندة إلى قيمة إرجاع المؤشر الحالية، مثلAbsolutePosition وAbsolutePage وRecordCount وPageCount، لأن تعيين خاصية التصفية إلى قيمة
معينة
ينقل السجل الحالي إلى السجل الأول الذي يلبي القيمة الجديدة.
أعتقد أن هذه السمة مفيدة جدًا في بعض الأحيان بعد فتح مجموعة السجلات وإصدار أحكام معينة، نريد تصفية السجلات، أي إعادة ضبط عبارة SQL. هل يجب علينا إغلاق مجموعة السجلات وفتحها باستخدام عبارة SQL جديدة؟ لا، فنحن نستخدم خاصية التصفية للتصفية، على سبيل المثال
rs.open إكسيك، كون، 1،1
إذا .... ثم rs.filter = "name = 'xxx'"
بدلاً من
rs.open إكسيك، كون، 1،1
إذا...ثم
rs. Close
exec=exec&" حيث الاسم='xxx'"
rs.open إكسيك، كون، 1،1
نهاية إذا
في الواقع، يجب استخدام عامل التصفية في العديد من الأماكن، وسيتم ذكر ذلك في مهارات ASP المستقبلية.
غدًا سنواصل الحديث عن أساليب كائن Recordset.