AbuuAhmed قام بنشر ديسمبر 27, 2022 قام بنشر ديسمبر 27, 2022 أمتلك الجواب ولكني أود السماح لمعلوماتكم وخبراتكم كما أو منكم لا يذهب أحدكم للبحث عن المعلومة ، اكتبوا فقط ما هو عالق في ذاكرتكم. والخيارات هي لإقفال الـ Recordset هكذا: rst.Close set rst = Nothing set dbs = Nothing أو هكذا: rst.Close set dbs = Nothing أو هكذا: set rst = Nothing set dbs = Nothing وإذا كانت الخيارات كلها سليمة فأيها الخيار الأمثل؟ 1
ابو جودي قام بنشر ديسمبر 27, 2022 قام بنشر ديسمبر 27, 2022 41 دقائق مضت, AbuuAhmed said: rst.Close set rst = Nothing set dbs = Nothing الاغلاق وتفريغ المتغيرات طبعا يفرغ الذاكرة العشوائية مما يحعل تطبيقك أكثر سلاسة وسرعة لانك بذلك سوف توفر موارد الجهاز تحياتى وفى النهاية هذا رأيى المتواضع قد أكون مخطئ فيه ولكن أنا هاو ولست محترف 1
AbuuAhmed قام بنشر ديسمبر 27, 2022 الكاتب قام بنشر ديسمبر 27, 2022 سأعود للموضوع بعد مضي 24 ساعة من كتابته لترك فرصة للمتداخلين.
ابو جودي قام بنشر ديسمبر 27, 2022 قام بنشر ديسمبر 27, 2022 تصحيح للمعلومات السابقة 1- عدم تفريغ المتغيرات ليس له تأثير فى تفريغ الذاكرة العشوائية او سرعة التعامل مع قاعدة البيانات ولكن فى حالة عدم تفريغها ومحاولة استخدامة نفس المتغير مرة أخرى باسناد قييمة جديدة لو اغفل المبرمج اسناد القيمة الجديدة سوف يحصل على القيمة السابقة 2- اما ال RS والتى تخص الـ Recordset عند استدعائها تقوم بفتح الجدول او الاستعلام حسب ما تسنده اليها وفى حالة عدم اغلاقها يظل الجدول او الاستعلام مفتوح وقد يحدث ذلك خطأ عند استدعاء نفس الجدول او الاستعلام مرة أخرى على اعتبار انه بالفعل مفتوح 2
AbuuAhmed قام بنشر ديسمبر 28, 2022 الكاتب قام بنشر ديسمبر 28, 2022 أشكركم على المشاركات الكريمة والساهمة في إثراء الموضوع معلومات التي من حفظي 🙂 ولم أراجعها: rst.Close set rst = Nothing set dbs = Nothing هذا أكثر احترازا وما عليها زود أما هذه: set rst = Nothing set dbs = Nothing أما هذه ففيها الكفاية وتقوم بنفس الخيار السابق تماما، حيث تمرير "Nothing" لمجموعة السجلات تقوم بالإغلاق والإفراع بمعنى 2 في واحد. أما هذه: rst.Close set dbs = Nothing فهي محل شك بالنسبة لي وكنت أمارسها سنين طويلة وكان بخلدي أن لغة الفجوال تتكفل بعملية الإفراع بمجرد الخروج من الإجراء أو الدالة لكل محتواه وإلى الآن لم أتأكد ولكن هو سلوك للغة نفسها بعض اللغات تترك عملية التحكم بالذاكرة للمبرمج كاملة وعليه أن يتعامل معها بكل حذر حتى عند الإعلان عن متغير سوف تراه يحمل قيمة عشوائية ولا بد قبل التعامل معه من "تصفيره" وإلا سترى نتائج غير متوقعة بعكس الفجوال فكل المتغيرات تراها ابتداء "نظيفة" لا تحتاج إلى "تصفير". وقياسا على أن "الحاوية" تشمل المحتويات في عملية الإغلاق والتفريغ فكنت أعتقد أن تمرير "Nothing" إلى قاعدة البيانات سوف يقوم بتفريغ مجموعة السجلات أيضا ولكن بعد التجربة الشخصية تبين خطأي ويمكنكم أن تجربوا فأنا قمت بإفراغ القاعدة وظلت المجموعة نشطة. عليه أرى أن خيار الإغلاق Close خياريا لاحترازية أكبر ويكفي عملية التفريغ ولكن عند إعادة استعمال المجموعة لابد من اغلاقها أولا وقبل فتحها من جديد لمجموعة سجلات جديدة. والخلاصة فأنا سأعتمد هذه: set rst = Nothing set dbs = Nothing وتحياتي لكم. 2
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.