اطلاع از قطع ارتباط در AdoConnecttion
سلام به عزیزان دل
بچه ها من چطوری میتونم بفهمم ارتباطم با دیتابیس از طریق AdoConnection قطع شده?
در برنامه های لوکال مدت زمان کانکشن تایم رو زیاد میکردم
اما یک برنامه تحت دیتابیس اینترتی نوشتم که متاسفانه بعضی مواقع به دلیل کندی اینترنت یا مسایل دیگه ارتباط به ADO قطع میشه
چطوری میتونم چک کنم که ارتباط قطع شده تا یک پیام به کاربر بدم؟
نقل قول: اطلاع از قطع ارتباط در AdoConnecttion
سلام.
اگر منظورت اینه که رویداد داشته باشی، متاسفانه نداری و می تونی اون رو با پینگ به DBMS (مثلا یه دستور الکی مثل select 1 که optimize نمی خواد) در دوره های معینی با ترد چک کنی..
اما برای مثال در تراکنش هات می تونی با try - except قرار دادن بلوک ADO در قسمت except چک کنی ببینی کانکشن لاست ارور شماست یا نه، بعد بیای و کانکشن رو مجدد باز کنی و به یوزر بگی دوباره تلاش کنه یا این که خودت براش دوباره تلاش کنی..
نقل قول: اطلاع از قطع ارتباط در AdoConnecttion
نقل قول:
اگر منظورت اینه که رویداد داشته باشی، متاسفانه نداری
آره منظورم همین بود
خودمم یک بار چک کردم دیدم نداشت اما گفتم شاید یه سولاخ سمبه ای داشته باشه :لبخند:
نقل قول:
قسمت except چک کنی ببینی کانکشن لاست ارور شماست یا نه، بعد بیای و کانکشن رو مجدد باز کنی و به یوزر بگی دوباره تلاش کنه یا این که خودت براش دوباره تلاش کنی..
این ارور رو چطور تشخصی بدم؟
اگه یک تایمر بزارم واسه چک کردن چجوره؟
نخوام وارد مسایل ترد و این حرفا بشم
نقل قول: اطلاع از قطع ارتباط در AdoConnecttion
نقل قول:
نوشته شده توسط
hadisalahi2
آره منظورم همین بود
خودمم یک بار چک کردم دیدم نداشت اما گفتم شاید یه سولاخ سمبه ای داشته باشه :لبخند:
این ارور رو چطور تشخصی بدم؟
اگه یک تایمر بزارم واسه چک کردن چجوره؟
نخوام وارد مسایل ترد و این حرفا بشم
try
ADOConn.Connected := True;
except
on e: EADOError do
begin
MessageDlg('Error while connecting', mtError, [mbOK], 0);
Exit;
end;
یه همچین چیزی میخوایید آقا هادی فکر کنم .
اگر از firedac استفاده می کردید رویدادهای OnLost و OnError می تونست بهتون کمک کنه .
نقل قول: اطلاع از قطع ارتباط در AdoConnecttion
البته یک سوال هم خودم داشتم توی این زمینه که اون رویدادهای بالا در مورد firedac من امتحان کردم به محض قطع شدن عکس العمل آنی نشون نمیده وقتی به یک نحوی بخوایید از connection استفاده کنید فراخوانی میشه . آیا همینطوره یا من اشتباه می کنم ؟
نقل قول: اطلاع از قطع ارتباط در AdoConnecttion
نقل قول:
اگر از firedac استفاده می کردید رویدادهای OnLost و OnError می تونست بهتون کمک کنه .
چون برنامه رو قبلا نوشتم دیگه نمیتونم از firedac استفاده کنم وگرنه مسلما از ado بهتره
در مورد سوالت هم من با firedac کار نکردم ، اما حدس میزنم بالاخره باید یه درخواست به سمت سرور بره که معلوم بشه ارتباط قطع شده یا نه
حالا این رویدادها بعد اینکه درخواست رفت و مشخص شد ارتباط وجود نداره باید فراخوانی بشه
البته این حدسیه که من میزنم شاید اساتید بیشتر بدونند در این مورد
یا حق
نقل قول: اطلاع از قطع ارتباط در AdoConnecttion
نقل قول:
نوشته شده توسط
hadisalahi2
چون برنامه رو قبلا نوشتم دیگه نمیتونم از firedac استفاده کنم وگرنه مسلما از ado بهتره
در مورد سوالت هم من با firedac کار نکردم ، اما حدس میزنم بالاخره باید یه درخواست به سمت سرور بره که معلوم بشه ارتباط قطع شده یا نه
حالا این رویدادها بعد اینکه درخواست رفت و مشخص شد ارتباط وجود نداره باید فراخوانی بشه
البته این حدسیه که من میزنم شاید اساتید بیشتر بدونند در این مورد
یا حق
خوب اگر این اتفاق در لحظه رخ بده و عکس العمل نشون بده خیلی بهتره برای اقدامات بعدی .
به هر حال ممنونم .