PDA

View Full Version : سوال: مشكل با mysql در زمان بالا آمدن ويندوز7



h_mohamadi
سه شنبه 31 تیر 1393, 14:16 عصر
با سلام خدمت دوستان
برنامه با دلفي دارم كه از پايگاه داده mysql استفاده مي كنه. اين برنامه زماني كه ويندوز به طور كامل بالا آمده باشد هيچ مشكلي نداره و اجرا مي شه
اين برنامه امكان اجرا شده خودكار زمان بالا آمدن ويندوز را دارد كه براي اين كار از مسير زير استفاده كردم

Hkey_current_use\SOftware\Microsoft\Windows\Curren tVersion\Run


مشكل اينه كه وقتي در بعضي از ويندوز ها (بيشتر بعضي از 7 ها و 8 ها) وقتي زمان بالا آمدن ويندوز برنامه مي خواهد اجرا شود پيغام خطا مي دهد كه در سيستم هاي مختلف هم اين پيغام متفاوت است
key violation mysql .................................. 10061
يا
an error ...............................error$2108
يا
.
.
لطفا راهنمايي كنيد
البته بايد بگم كه اگر پيغام خطا ها رو تاييد كنيد و بلافاصله مجددا برنامه را به صورت دستي اجرا كنيد برنامه بدون هيچ مشكلي باز مي شود
موردي كه به نظرم رسيد اينه كه mysql هنوز اجرا نشده ، براي رفع اين مشكل هم ارتباط با mysql رو توي لوپ تا 5 بار تست مي گيرم ولي مشكل هنوز رفع نشده، چي كار كنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
خودم دستي mysql رو ران كنم يا منتظر ران شدنش بمونم يا اصلا مشكل مربوط به ODBC است يا ؟؟؟؟؟؟؟؟؟؟؟؟
اين مورد چون رو سيستم مشتري است امكان آزمون و خطاي راه حل هاي مختلف رو ندارم و بايد به يك راه حل كلي و همه جانبه برسم

سعید صابری
سه شنبه 31 تیر 1393, 14:35 عصر
چون نرم افزار شما زودتر از سرویس mysql اجرا میشه این پیغام میده.
می تونید شرط بزارید که تا زمانیکه سرویس mysql ران نشده برنامه شما اجرا نشه.

h_mohamadi
سه شنبه 31 تیر 1393, 15:01 عصر
چون نرم افزار شما زودتر از سرویس mysql اجرا میشه این پیغام میده.
می تونید شرط بزارید که تا زمانیکه سرویس mysql ران نشده برنامه شما اجرا نشه.
منظورتون از شرط گذاشتن از طريق كدنويسي برنامه يا خارج از اونه؟
اگر منظورتون خارج از برنامه است چطوري ؟؟؟؟؟؟؟؟؟

از طريق كدنويسي برنامه منتظر ران شدنش بمونم يا خودم mysql رو ران كنم
كدوم بهتره؟
يه سوال ديگه: آيا راه حلي وجود دارد كه برنامه به عنوان آخرين برنامه زمان بالا آمدن ويندوز اجرا شود در اين صورت مطمئنا mysql قيلا ران شده است
آيا محلي براي مشخص كردن تقدم و تاخر اجراي برنامه ها وجود دارد؟

miladamirzadeh
سه شنبه 31 تیر 1393, 19:44 عصر
به نظر می رسه مشکل تو ارتباط با MySQL نیست. اگر نرم افزاری نتونه به MySQL وصل بشه پیام خطایی شبیه به Cannot Connect To MySQL Server On ... می ده. بهنظرم شما باید متن خطا رو به صورت کامل بذاری.
در صورتی که مساله تقدم و تاخر اجرای برنامه ها باشه راه درست Exception Handling هست و صبر کردن تا زمانی که سرویس MySQL پاسخ مناسبی به شما بدهد.

سعید صابری
سه شنبه 31 تیر 1393, 21:03 عصر
به نظر می رسه مشکل تو ارتباط با MySQL نیست. اگر نرم افزاری نتونه به MySQL وصل بشه پیام خطایی شبیه به Cannot Connect To MySQL Server On ... می ده. بهنظرم شما باید متن خطا رو به صورت کامل بذاری.
در صورتی که مساله تقدم و تاخر اجرای برنامه ها باشه راه درست Exception Handling هست و صبر کردن تا زمانی که سرویس MySQL پاسخ مناسبی به شما بدهد.
این متن خطای دوستمون مربوط به زمانی که سرویس mysql ران نشده و یا کامل ران نشده.

میتونی در خود برنامه ات و یا یک برنامه کوچیک به عنوان لودر برنامه ات بنویسی و اونو در استارت ویندوز بذاری که چک کنه ایا سرویس ران شده یا خیر.مثلا اگه ران نشده یک پیغام صبر کنید به کاربر بده.
قطعا این کار باید بوسیله کد نویسی بشه راحت ترین راه استفاده از استثنا یا همون try..except هست خود دلفی هم کتابخانه برای کار با سرویس ها داره jcl نیز کتابخانه های جالبی برای کار با سرویس ها داره به راحتی کارهای مثل start,stop و... میشه انجام داد در کل باید وضعیت status سرویس بدست بیاری که با کتابخانه هایی که گفتم به سادگی انجام میشه و یا اگه حوصله نداری بزار توی try..except.