نمایش نتایج 1 تا 17 از 17

نام تاپیک: چك كردن ديتابيس SQL در هنگام اجراي برنامه

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #5
    کاربر دائمی آواتار M_Maskout
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    تهران
    سن
    46
    پست
    150

    نقل قول: چك كردن ديتابيس SQL در هنگام اجراي برنامه

    نقل قول نوشته شده توسط pandco مشاهده تاپیک
    با سلام
    خواهشن يكي از دوستان كمك كنه !!!!!

    با تشكر
    شیئ Application، ویژگی‌ها، متدها و وقفه‌های جالبی داره که به کمک اونا می‌شه خیلی از مدیریت‌ها رو روی کل برنامه انجام داد.
    پیشنهاد می‌دم یه روتین برای وقفه‌ی OnException اون بنویسین و توی اون وقفه، خطاهای پیش اومده در کل برنامه رو مدیریت کنین، هم برنامه خیلی حرفه‌تر می‌شه، هم دست شما برای انواع کنترل روی کل برنامه در زمان بروز خطا باز می‌شه.
    مثلاً در وقفه FormCreate از فرم اصلی برنامه دستور
    Application.OnException := OnException;
    رو قرار بدین بعد هم روتین OnException رو در ادامه به عنوان یکی از متدهای همین فرم تعریف کنین. یه چیزی مثل این:

     
    uses ComObj;
    TfrmMainForm = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure OnException(Sender: TObject; E: Exception);
    end;

    procedure TfrmMainForm.FormCreate(Sender: TObject);
    begin
    Application.OnException := OnException;
    end;

    procedure TfrmMainForm.OnException(Sender: TObject; E: Exception);
    begin
    ShowMessage(E.Message + ' (Error Code: ' + IntToStr(EOleException(E).ErrorCode) + ')');
    end;


    از پارامتر E برای تشخیص نوع خطا می‌تونید استفاده کنین. وقتی خطایی در برنامه رخ می‌ده، دلفی یه نمونه از کلاس TObject می‌سازه و خطای بوجود اومده رو با اون نمایش می‌ده.
    با استفاده از پارامتر E و تبدیل اون به کلاس ساخته شده، می‌شه خطای بوجود اومده رو مدیریت کرد.
    در اینجا اگر بجای دستور

    ShowMessage(E.Message + ' (Error Code: ' + IntToStr(EOleException(E).ErrorCode) + ')');

    از دستور


    ShowMessage(E.Message+' ('+E.ClassName+')');
    استفاده بشه، در زمان بروز خطا، عبارت داخل پرانتز در پنجره نمایش داده شده، نام کلاسی که خطا رو کنترل کرده (ایجاد کرده) نمایش داده می‌شه.
    در خطاهایی که در اثر استفاده از AdoConnection ایجاد می‌شه، نام کلاس، EDatabaseError هست و البته با استفاده از این کلاس نمی‌شه مدیریت چندانی روی خطا انجام داد. اما چون AdoConnection یه شیء OLE هست، می‌شه با استفاده از تبدیل کلاس خطای ایجاد شده به EOleException و استفاده از ویژگی ErrorCode اون کل خطای بوجود اومده رو مدیریت کرد. فقط لازمه کد خطا رو بدونید که برای این منظور می‌تونید از ساختار case ... of و شاخه else اون استفاده کنین یه چیزی مثل این:

    [LTR_INLINE]
    case EOleException(E).ErrorCode of
    .
    .
    .
    else
    ShowMessage(E.Message + ' (Error Code: ' + IntToStr(EOleException(E).ErrorCode) + ')');
    end;
    [/LTR_INLINE]


    با استفاده از ساختار کد بالا شماره خطاهای پیش بینی نشده (فقط خطاهای اشیاء OLE) مشخص می‌شه و می‌شه بعداً این شماره خطاها رو هم در برنامه مدیریت کرد.
    توجه: به استفاده از یونیت ComObj در قسمت uses توجه کنید، در غیر اینصورت نمی‌تونین از کلاس EOleException استفاده کنین.
    آخرین ویرایش به وسیله M_Maskout : جمعه 12 فروردین 1390 در 16:46 عصر دلیل: مشکلات نمایش پست تو IE

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •