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

نام تاپیک: تشخیص عدم انجام تراکنش بعد از مدت زمان مشخص

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    292

    تشخیص عدم انجام تراکنش بعد از مدت زمان مشخص

    سلام بر دوستان و همکاران گرامی
    من در پروژه ای از یک FDConnection برای برقراری ارتباط با دیتابیس استفاده میکنم. همچنین در فرمهای مختلف تعداد زیادی FDQuery و FDTable دارم و بعضا FDQuery و FDTable هایی را هم داینامیک میسازم.
    آیا از Event های FDConnection و یک تایمر میتوانم تشخیص دهم که کاربر چه مدتی از برنامه استفاده نکرده است؟ می خواهم اگر مثلا نیم ساعت برنامه باز بود بدون آنکه استفاده کند، برنامه کلا بسته شود! البته نمیخواهم فقط کانکشن قطع شود.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    292

    نقل قول: تشخیص عدم انجام تراکنش بعد از مدت زمان مشخص

    یعنی هیچ راهی نداره؟

  3. #3
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: تشخیص عدم انجام تراکنش بعد از مدت زمان مشخص

    می‌توانید از تابع GetTickCount در دلفی برای اندازه‌گیری زمان استفاده کنید. این تابع زمان اجرای برنامه را به میلی‌ثانیه برمی‌گرداند. در زمان مناسب (برای مثال هر 10 دقیقه)، زمان فعلی را ذخیره کنید و در هر تراکنش، زمان اجرای آن را مقایسه کنید. اگر زمان گذشته از 10 دقیقه باشد و هیچ تراکنشی انجام نشده باشد، اتصال را قطع کنید.
    var  LastTransactionTime, CurrentTime: Cardinal;
    begin
    // در زمان مناسب (هر 10 دقیقه) زمان فعلی را ذخیره کنید:
    LastTransactionTime := GetTickCount;


    // در هر تراکنش:
    // ...


    // در زمان مناسب، زمان فعلی را دوباره گرفته و با زمان آخرین تراکنش مقایسه کنید:
    CurrentTime := GetTickCount;
    if (CurrentTime - LastTransactionTime > 600000) then // 600000 معادل 10 دقیقه در میلی‌ثانیه است
    begin
    // هیچ تراکنشی انجام نشده است، اتصال را قطع کنید:
    FDConnection1.Connected := False;
    end;
    end;


    در Delphi و با استفاده از FDConnection، می‌توانید از رویداد AfterConnect برای اطلاع از برقراری اتصال به دیتابیس استفاده کنید. این رویداد هنگامی اجرا می‌شود که اتصال به دیتابیس با موفقیت برقرار شود. در این رویداد می‌توانید زمان برقراری اتصال را ثبت کرده و از آن برای محاسبه زمان گذشته از آخرین تراکنش استفاده کنید.
    procedure TForm1.FDConnection1AfterConnect(Sender: TObject);begin
    // زمان برقراری اتصال را ثبت کنید
    LastTransactionTime := GetTickCount;
    end;


    سپس در قسمتی از برنامه که یک تراکنش انجام می‌دهید، می‌توانید زمان جاری را ذخیره کرده و برای محاسبه زمان گذشته از آخرین تراکنش استفاده کنید، همانند مثال قبلی.

تاپیک های مشابه

  1. سوال: نحوه تشخیص اتصال فلش مموری به کامپیوتر و تشخیص برنامه از داخل فلش مموری؟
    نوشته شده توسط asgharjoon2 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 11
    آخرین پست: پنج شنبه 31 فروردین 1391, 12:13 عصر
  2. پاسخ: 20
    آخرین پست: چهارشنبه 24 اسفند 1390, 16:45 عصر
  3. تشخیص نصب آکروبات ریدر
    نوشته شده توسط mossaferin در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: یک شنبه 23 فروردین 1388, 20:32 عصر
  4. سوال: برنامه تشخیص عدد اول
    نوشته شده توسط sasa sheybani در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: شنبه 22 فروردین 1388, 20:53 عصر

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

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