PDA

نسخه کامل مشاهده نسخه کامل : فرمها در محاسبات سنگین



bad_boy_2007
06-03-2007, 11:34
سلام یه برنامه نوشتم که دیتایبیسهای dbf فاکسپرو داس رو را mdb تبدیل میکنه و حروف فارسی رو هم به حروف ویندوز تبدیل میکنه .
فقط یه مشکل داشتم اونم اینه که چون تعداد اقلام اطلاعات خیلی زیاده مثلا یک جدول حدود 460 هزار قلم اطلاعات داره و چند تا جدول دیگه هم حدود 20 یا 30 هزار قلم و تبدیل این اطلاعات روی سیستم من حدود 5 دقیقه طول میکشه که حجم دیتابیس هام میشه یه چیزی حدود 20MB با توجه به اینکه در عمل تبدیل پردازش زیادی هم روی اطلاعات انجام میشه .
حالا مشکل من اینه که فرمام هنگ میکنه مثلا کلید لغو دارم که اگه روش کلیک کنه عمل تبدیل باید متوقف بشه در صورتی که اکه روی این کلید کلیک کنه عمل نمیکنه ، تو همین انجمن حدود 3 ماه پیش یا بیشتر همین سوال رو واسه محاسبه اعداد اول مطرح کرده بودن و اینطور راهنمایی کرده بودنش که دستوراتش رو بین doevents بنویسه منم همین کار رو کردم ولی فرق زیادی نکرد :happy:
ممنون میشم اگه راهنمائیم کنین :blush:

_H2_
06-03-2007, 12:04
سلام
راه حل رسمی حل این مشکل در VB6 فقط همان است، پیشنهاد میکنم مراحل اجرای دستور Call VBA.DoEvents را تندتر کنید و مدام فراخوانی اش کنید. (در همان حلقه اصلی)

ولی راه حل کلی مشکلاتی از این دست، اجرای این اعمال در Thread جداگانه ای است که چون VB6 از آن پشتیبانی نمیکند، بسیار مشکل است ولی قابل انجام است.

البته در تاپیک دیگری متوجه شدم که به شما رایانه های گازوئیلی داده اند و گرنه طبق معمول پیشنهاد میکردم با VB8 کار کنید، چون در VB8 کلاسس ها و کامپونت های بسیاری برای حل این مشکل داریم
(اصلاَ کلاسس و کامپونت کشک! یک فضای نام مخصوص برای حل این مشکل وجود دارد.)

در کل همان راه اول برای شما بهتر است.

a_mohammadi_m
06-03-2007, 12:11
با سلام
در حلقه هاي برنامه كه DBF رو تبديل مي كني يك سطر اضافه كن
DoEvents
دستور DoEvents به ويندوز اجازه مي ده كه غير از پردازش فعلي به كارهاي ديگه مثل جواب به صفحه كليد و ماوس و برنامه هاي ديگه هم برسه و وقتش رو كلا با برنامه جاري صرف نكنه
يكي از كارهاي ديگر كه ويندوز بهش رسيدگي مي كنه رسم فرمها است ( Form ها رو دوباره در Desktop نقاشي مي كنه يعني نميزاره ظاهر فرمها بهم بريزه ) كه DoEvents وقت ميده كه ويندوز همه اين كارا رو بكنه

bad_boy_2007
06-03-2007, 12:31
ممنون از راهنمائی تون :rolleye: درست شد
آره H2 جان متاسفانه اون جایی که قراره این برنامه رو واسشون پیاده کنیم سیستماشون پایین و میخوان سیستمای اصلی شون رو ارتقا بدن و سیستم گازوئیلی ها رو بدن واسه این برنامه :biggrin: