یقینا شما برای ارتباط اتون از ابزاری استفاده می کنید.
بعنوان مثال در شبکه اگر از Indy استفاده کنید.
به صورت زیر ارور اتون رو هندل کنید :
کد:
کد:try with IdTCPClient1 do begin if Connected then Disconnect; Host := trim(آدرس Ip هاست اتون); Port := 80; Connect; try ShowMessage(IOHandler.LocalName); // این لاین فقط جهت تست برنامه است finally Disconnect; end; end; except ShowMessage("خطایی در ارتباط اتون رخ داده است"); end;
البته میتونید دقیقا مشخص کنید که اگه کد ارور 10061 بود فلان ارور رو بده ...
شما از ado برای ارتباط با دیتابیس استفاده می کنید یا از unidac ؟؟؟
از چه ابزاری ؟
مثلا در ado و SQLServer ما به صورت زیر با خطاها رفتار می کنیم.
اولا : جدول خطاها رو میتونید با کد زیر ببینید :
کد:
کد:use master go select * from sysmessages go
حالا کافیه کد خطاهایی رو که بیشتر اتفاق میفته رو پیدا کرده و معادل فارسی اونها رو در بیارید :
مثلا :
کد:
کد:error...... severity .......dlevel ....description ....................................................msglangid 156 .......15 .............. 0 .......Incorrect syntax near the keyword "%.*ls". .........1033
در مرحله ی بعد با هر روشی که دوست دارید کدها رو با کد خطایی که اتفاق افتاده مطابق زیر مقایسه می کنید و خطای مناسب رو به نمایش می گذارید :
کد:
کد:var LastErrorIndex :double; begin try ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add("select * from dataBase"); ADOQuery1.Open; except // Log Exception.. on E: Exception do begin LastErrorIndex:=ADOConnection1.Errors.Count-1 ; ShowMessage(VarToStr(ADOConnection1.Errors.Item[LastErrorIndex].Source )); ShowMessage(VarToStr(ADOConnection1.Errors.Item[LastErrorIndex].Description )); ShowMessage(VarToStr(ADOConnection1.Errors.Item[LastErrorIndex].NativeError )); if ( ADOConnection1.Errors.Item[LastErrorIndex].NativeError = 156 ) then begin ShowMessage("ارور شماره 156 در دیتابیس رخ داده است"); end; end; end;
موفق و موید باشید
علاقه مندي ها (Bookmarks)