PDA

View Full Version : مشکل در Ado Connection



Saeid59_m
یک شنبه 11 اسفند 1392, 21:33 عصر
سلام
من یه دیتا بیس روی هاست دارم که توی اون یه فیلد برای مشخص شدن نسخه برنامه جدید برای آپدیت نرم افزار وجود داره و قرار برنامه توی یه تایمر یک ساعته این فیلد رو چک کنه که اگه ورژن جدیدی بود آپدیت بشه . حالا مشکلم اینه که اگه اینترنت وصل نباشه یه به هر دلیل دیگه ای که ارتباط با سرور مقدور نباشه تا جواب گرفتن Adoconnection برنامه هنگ می کنه هر چی هم Time Connection تغییر دادم فایده ای نداشت . از thread هم استفاده کردم فایدهی نداشت و ارور می داد .

به دادم برسید !!! :)

یوسف زالی
یک شنبه 11 اسفند 1392, 23:42 عصر
سلام.
ترد مربوطه می باید خودش مسوول ساخت شی کانکشن باشه.

Saeid59_m
دوشنبه 12 اسفند 1392, 14:18 عصر
پس چرا تايم كانكشن كار نمي كنه ؟

یوسف زالی
دوشنبه 12 اسفند 1392, 14:43 عصر
من که نمی دونم ارورتون و ساختار برنامتون چطوره، کانکشن رو باید در ترد مربوط به خودش بسازید تا در روند ترد اصلی برنامه شما رو قفل نکنه.این کار رو کردید و همچنان ارور یا باگ داره؟

Saeid59_m
جمعه 23 اسفند 1392, 00:51 صبح
با تشکر از دوستان راه حل سوال فوقم رو پیدا کردم کافی بود ConnectOption=coAsyncConnect باشه (حتی می تونید در زمان کانکت دکمه کنسل رو هم بگذارید تا اگر کاربر منصرف شد بتونه عملیات رو لغو کنه )
حالا یه سوال دیگه در همین رابطه :
چطور می شه خطای AdoConnection را کنترل کرد با try تست کردم نشد - زمانی که نمی تواند کانکت شود ارور می دهد

Saeid59_m
شنبه 02 فروردین 1393, 09:46 صبح
دوستان کسی جواب این سوال رو نمی دونه ؟!

zidane
شنبه 02 فروردین 1393, 16:10 عصر
راهی که من قبلا در موارد مشابه استفاده کردم و جواب گرفتم این بوده که اول از سرور Ping گرفتم و در صورت برقراری ارتباط، کانکشن رو فعال کردم.

Saeid59_m
یک شنبه 03 فروردین 1393, 10:25 صبح
با این کار هم ممکنه ADOCOnnection ارتباط نگیره ، چون روی پورت دیگه کار می کنه یا اصلا Ping کار نکنه ولی ADO ارتباط بگیره (به دلیل وجود فایروال ها ) . به هر حال من فقط می خوام وقتی ADOConnection ارتباط نگرفت Error رو کنترل کنم . نه اینکه خودش یه پنجره خطا نشون بده با try هم امتحان کردن نشد .

ashoori
یک شنبه 03 فروردین 1393, 12:27 عصر
برای مثال:

ACon.Connected:=False;
ACon.ConnectionString:= '...';
ACon.Connected:=True;
except
ACon.Connected:=False;
MessageDlg('متأسفانه اتصال به سرور مقدور نمی باشد، لطفا دوباره سعی کنید',mtError,[mbOK],0);
Application.Terminate;
end;

Saeid59_m
سه شنبه 05 فروردین 1393, 00:48 صبح
درسته ولی وقتی خاصیت ConnectOption=coAsyncConnect قرار می دی دیگه این حالت کار نمی کنه چون کامپایلر از روی دستور ACon.Connected:=True پرش می کنه و ادامه برنامه اجرا میشه و عملیات اتصال به بانک هم موازی با روند برنامه در حال اجرا خواهد بود .