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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


لا توجد ردود على هذا الموضوع

#1 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 22 March 2007 - 02:52 PM

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

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

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

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

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

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

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

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



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


وشكراَ

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )