View Full Version : سوال: قطع ارتباط با اسکیوال سرور
Mah6447
دوشنبه 16 اردیبهشت 1387, 10:37 صبح
چگونه می توان جلوی نمایش خطای قطع ارتباط با اسکیوال را گرفت و یا به این صورت بگویم که چگونه می توان وضعیت ارتباط با اسکیوال سرور را قبل از بروز خطا چک کرد ؟
dkhatibi
سه شنبه 17 اردیبهشت 1387, 18:49 عصر
از یک Application تو فرم استفاده کنید و رویداد OnException اون را کد نویسی کنید.
SYNDROME
سه شنبه 17 اردیبهشت 1387, 19:49 عصر
و یا در جاهایی که فکر می کنید ممکن است این خطا پیش بیاید از Try . . . Except استفاده کنید.
البته می توانید یک تابع بنویسید و به OnException برنامه متصل کنید تا هر جا خطا رخ داد تابع شما فراخوانی شود.
می توانید در سایت جستجو کنید.
موفق باشید
Mah6447
چهارشنبه 18 اردیبهشت 1387, 07:15 صبح
ممنون از دوستان گرامی . اما نمی دانم که این رویداد کجا اتفاق می افتد . فرض اینکه برنامه در حال اجراست و به خوبی کار می کند . حال ارتباط فیزیکی یا نرم افزاری اسکوال قطع می شود و برنامه شروع به نمایش خطاهای پی در پی در سیستم کاربران می کند .
1- آیا منظور شما قرارداده Try . . . Except در همان کد Connection String هست یا جای دیگر ؟
2- دقیقاً محل ایجاد این رویداد کجاست ؟
Vahid_moghaddam
چهارشنبه 18 اردیبهشت 1387, 11:19 صبح
1- محل: هر جا که جدولی، چیزی بخواد به دیتابیس متصل بشه، یا با query خواسته باشید کاری با db انجام بدین، خطا رخ می ده.
2- مساله دیگه ای که پیش میاد اینه: فرض کنید اتصال شما قطع می شه. مثلا server متوقف می شه و بعد راه اندازی می شه. با اینکه server در حال اجراست، کامپوننتهای ADO اتصال مجدد رو به طور خودکار برقرار نمی کنن.
Mah6447
چهارشنبه 18 اردیبهشت 1387, 12:06 عصر
1- برای اینکه این خطا (تصویر ضمیمه) که بصورت آبشار تکرار می شور برای کاربران مشاهده نشود چه باید کرد ؟
2- چگونه یک پیغام جایگزین برای آن نمایش داده شود ؟
3- چگونه با ارتباط مجدد Connection بطور اتوماتیک فعال شود ؟
قبلاً از پاسخگویی شما متشکرم ....
Vahid_moghaddam
چهارشنبه 18 اردیبهشت 1387, 15:44 عصر
در جاهایی که این خطا اتفاق می افته، از یک بلوک try...except استفاده کنید.
try
Do SomeWork
except
show your erro message;
connection.connected:=false;
connection.connected:=true;
end;
Arghavan_Reza
چهارشنبه 18 اردیبهشت 1387, 16:56 عصر
با سلام
در جاهایی که این خطا اتفاق می افته، از یک بلوک try...except استفاده کنید.
با توجه به اینکه در جاهای بسیاری احتمال بروز این خطا است و بکارگیری راه حل فوق برای تمامی آنها وجود ندارد , چگونه می توان با هدایت خطای مذکور به ماژول کنترل خطا مشکل را حل نمود؟
با تشکر
Vahid_moghaddam
چهارشنبه 18 اردیبهشت 1387, 17:09 عصر
به کار بردن try...except که مشکلی بوجود نمیاره!
میشه کد قسمت except رو که در واقع مدیریت خطا رو بر عهده می خواد بگیره، به صورت function تعریفش کرد و در تمام فرمهای پروژه ازش استفاده کرد.
در هر حال ابتدا باید خطا رو گرفت.
Arghavan_Reza
چهارشنبه 18 اردیبهشت 1387, 17:35 عصر
راه حلی باید یافت که بدون بکارگیری try...except در این مورد, با بروز خطا برنامه بطور خودکار به تابع مورد نظر هدایت شود. من نمیدانم ولی حتما راه حلی وجود دارد.
SYNDROME
چهارشنبه 18 اردیبهشت 1387, 21:29 عصر
یک تابع به شکل زیر تعریف کنید.
procedure TForm1.HandelException(Sender: TObject;E: Exception);
begin
//
end;
سپس در زمان اجرای برنامه تابع فوق را به برنامه متصل کنید تا در زمان بروز خطا تابع فوق اجرا شود.
Application.OnException := HandelException;
حالا کلیه خطاها در سطح برنامه به تابع فوق ارسال می شود.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.