الانتقال إلى المحتوى

كيف يتم منح فرصة لإجراء عمليات أخري


MMA

Recommended Posts

إخواني الكرام ، تحية طيبة وبعد،

جاء لي عميل يحتاج الي برنامج لمتابعة المخازن وفواتير الشراء والبيع فقمت بإنشاء البرنامج المطلوب وقام المستخدم بتخزين حوالي 3 مليون فاتورة ، وعند عرض كافة الفواتير خلال السنة المالية بتقري كريستال ريبورت ظهرت المشكلة !!!

حدث تجمد تام للبرنامج لمدة ربع ساعة فأكثر ، ويرجع ذلك الي كتابة جملة SQL ترتبط بمجموعة من ال Functions و العمليات الكثيرة وأيضاً الكمية الكبيرة من البيانات التي سيتم عرضها.

سؤالي هنا ، كيف يتم معالجة المشكلة الموضحة أعلاة ، أو للدقة كيف يتم منح فرصة من داخل قاعدة البيانات كي أقوم بوضع لافتة إنتظار ( مثل شريط بيان الحالة ) وفي نفس الوقت يقوم بإجراء أعماله الأخري طبيعي دون حدوث تجمد.

إخواني الكرام ، في الحقيقة أنا مبرمج فيجوال بيزيك مع أوراكل ، سأمنح لكم كود بسيط جداً يوضح ما أريدة بالضبط :

For X = 1 To 3000000
Me.Caption = X
Next

الكود السابق يوضح جملة تكرار من 1 الي 3 مليون ، في الحالة سيؤدي الي حدوث تجمد للبرنامج فترة لحين الإنتهاء من جملة التكرار ، وفي الحالة الموضحة أعلاة أيضاً ستؤدي الي عدم تمكين المستخدم من إجراء عمليات أخري علي البرنامج.

ولحل المشكلة ببساطة نقوم بوضع أمر ( DoEvents ) لمنح الفرصة لإجراء عمليات أخري . هل من طريقة تمكنني من إجراء عمليات أخري أثناء عرض العديد من السجلات داخل جمل SQL



إخواني الكرام ، أتمني أن يكون سؤالي واضح بالتفصيل ، وأتمني أيضاً الرد السريع حيث أنني منزعج جداً من المشكلة المطروحة أمامكم


وشكراَ

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية