View Full Version : سوال: کنترل خطای سیستم
drahmadtaraffoo
دوشنبه 17 خرداد 1389, 21:33 عصر
بسم الله الرحمن الرحيم
دوستان سلام
من مي خواهم زماني که برنامه ام اجرا شد اگر بانک اطلاعاتي موجود نباشد
خطاي سيستم را خودم کنترل کنم.
اين کد را هم نوشتم :
Try
Connection.Connected:=True;
Except
Application.Terminate;
end;
يا این کد :
If
Connection.Connected=False
Then
Application.Terminate;
end;
اما در يک برنامه درست کار مي کند و در يک برنامه نه؟
علت چيست؟
بايد از چه دستوري استفاده کنم؟
متشکرم
حسین شهریاری
دوشنبه 17 خرداد 1389, 22:13 عصر
سلام
یه تابع به شکل زیر تهریف کنین که بولین برگردونه:
function TForm1.TestConnect(con:TADOConnection):Boolean;
begin
try
con.LoginPrompt:=false;
con.Open;
testconnect:=True;
except
testconnect:=false;
end;
end;
بعد اینطوری ازش استفاده کن:
if TestConnect(ADOConnection1)=True then
ShowMessage('Yes')
else
ShowMessage('No');
این طوری هست که شیئی از نوع Adoconnection میگیره اگه کانکشن برقرار بود True و در غیر False برمیگردونه.یعنی اگه کانکشن برقرار نشه در اصل یک استثناء رخ میده که با بلوک Try این استثناء کنترل و ازش برای برگردوندن مقدار False استفاده میشه.البته شما میتونی جای Showmessage ها هر چی دوست داشتین قرار بدین.
موفق باشید
mehdimdp
دوشنبه 17 خرداد 1389, 23:38 عصر
[SIZE=3][B]
[FONT=Arial]اين کد را هم نوشتم :
Try
Connection.Connected:=True;
Except
Application.Terminate;
end;
يا این کد :
If
Connection.Connected=False
Then
Application.Terminate;
end;
اما در يک برنامه درست کار مي کند و در يک برنامه نه؟
علت چيست؟
بايد از چه دستوري استفاده کنم؟
متشکرم
سلام
فکر کنم کدی که دوستمون در پست قبلی اشاره کردن کار شما رو راه بندازه
اما درمورد عدم جوابدهی صحیح کدی که خودتون نوشتین
کد اولی اشکالی نداره
ولی کد دومی رو پیشنهاد می دم استفاده نکنی .
چون بعضی وقتها در اول برنامه ی شما ممکنه که کانکشن فعال نباشه و کد Terminate اجرا بشه
Felony
سه شنبه 18 خرداد 1389, 00:04 صبح
من مي خواهم زماني که برنامه ام اجرا شد اگر بانک اطلاعاتي موجود نباشد
اگر بانکتون اکسس هست به وسیله تابع FileExsits میتونید وجود فایل رو چک کنید ، مثلا :
if Not FileExists('DataBase') then
Application.Terminate;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.