تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 8 از 8

نام تاپيک: کار با رکوردها ( قفل کردن و غیره )

  1. #1
    پروفشنال as13851365's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    لیبدرا
    پست ها
    914

    9 کار با رکوردها ( قفل کردن و غیره )

    چند سوال برایم پیش آمده که امیدوارم دوستان کمک کنند

    1 ) چطور می تونم یک رکورد را قفل کنم ( با چه دستوری می شه یک رکورد را قفل کرد)
    2 ) چطوری می شه فهمید که یک رکورد قفل است یا نه ؟
    3 ) چطوری یک رکورد را که قفل است از حالت قفل خارج کنیم؟

    4 ) به کد زیر دقت کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگر یک برنامه را دو بار اجرا کنیم یا دو برنامه از یک بانک استفاده کنند اگر در برنامه (الف) یک رکورد جدید ایجاد کنیم در برنامه ( ب ) این رکورد نمایش داده نمی شه چرا ؟
    تنها راه حلی که به نظر من خوب آمد ( می دونستم ) استفاده از یک تایمر بود یعنی در برنامه (الف) بعد از این که یک رکورد جدید ایجاد کردم بانک را یک بار می بندم و دوباره باز می کنم و در برنامه (ب) یک تایمر قرار دادم که مثلا در هر دو ثانیه بانک را می بنده و دوباره باز می کنه .
    حالا یک سوالا آیا راه بهتری وجود دارد ؟

  2. #2
    پروفشنال as13851365's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    لیبدرا
    پست ها
    914

    پيش فرض

    فکر کنم همه مشغول هستن که فرصت جواب دادن ندارن!!!

  3. #3
    پروفشنال as13851365's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    لیبدرا
    پست ها
    914

    پيش فرض

    فکر کنم همه مشغول هستن که فرصت جواب دادن ندارن!!!

  4. #4
    آخر فروم باز NoneForce's Avatar
    تاريخ عضويت
    Nov 2005
    محل سكونت
    Sector0@
    پست ها
    1,603

    پيش فرض

    فکر کنم همه مشغول هستن که فرصت جواب دادن ندارن!!!
    سلام
    مثل اينكه سر شما خيلي خلوته كه داريد همينطوري پشت سرم هم پست ميزنيد!

    يك راه حل :
    وقتي كاربر اول قصد ويرايش يك ركورد را مي كنيد، در يك جدول ديگر شماره ركورد و يك شماره منحصر به فرد درج كنيد، و وقتي كار ويرايش تمام شد آن ركورد را پاك كنيد، حالا وقتي كاربر اول در حال ويرايش است، وقتي كاربر دوم اقدام به ويرايش كند چون در جدول ما ركوردي با شماره ركورد در حال ويرايش وجود دارد، در نتيجه كاربر دوم خطايي مبني بر قفل بودن ركورد دريافت مي كند و بايد تا زمان پايان ويرايش كاربر اول صبر كنيد.

    ميتونيد از كامپوننتهايي مثل Absolute Database استفاده كنيد كه Multi-User هستند.
    Last edited by NoneForce; 08-02-2008 at 11:38.

  5. #5
    پروفشنال romixery's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    ميون موجودات عجيب غريب(آدما)
    پست ها
    673

    پيش فرض

    سلام
    با اجازه نانفورس جان:
    البته يه كار ديگه هم مي تونيد انجام بدين كه نيازي به يه جدول ديگه نيست. يه فيلد در جدولتون ايجاد كنيد. به محض اينكه ركورد در حال Edit هست مقدار اون رو به مثلا (1) تغيير بدين. و وقتي مي خواين ذخيره كنيد،‌ دوباره مقدارش رو به (0) تغيير بدين. حالا اگه يه كاربر ديگه در همين موقع خواست با اون ركورد كار كنه، اگه مقدار اون فيلد يك باشه يعني اينكه ركورد در حالت Edit هستش و اينجا مي تونيد دسترسي به اون ركورد رو قطع كنيد.
    البته قبلا در تاپيك (درخواست آموزش تحت شبكه) در مورد اين موضوع بحث شده بود. چون اين موضوع در شبكه بسيار اهميت داره.
    موفق باشين

  6. #6
    حـــــرفـه ای F A R H A D's Avatar
    تاريخ عضويت
    Aug 2006
    پست ها
    1,383

    پيش فرض

    سلام. راه ساده تر هم استفاده از locktype هست كه ميتونيد روي ltPessimistic تنظيم كنيد و اجازه ويرايش همزمان ركورد رو نديد.
    ضمن اينكه به صحبتهاي دوستان اين مورد رو اضافه ميكنم كه روشهايي كه گفتيد زماني كارآمد هست كه تمام دستورات از شروع ويرايش تا پايان كار درون يك Transaction انجام شه كه مشكلاتي كه بعد از رفتن برق يا متوقف شدن برنامه در وضعيت نا متعارف بوجود مياد، براي برنامه مشكلي ايجاد نكنه

  7. #7
    پروفشنال romixery's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    ميون موجودات عجيب غريب(آدما)
    پست ها
    673

    پيش فرض

    البته براي رفع مشكل برق يا غيره ميشه هنگامي كه سرور بانك رو باز كرد تمام خونه هاي اون فيلده رو توي جدول به صورت پيش فرض 0 كنه. اينجوري هيچ خونه اي 1 باقي نمي مونه.

  8. #8
    حـــــرفـه ای F A R H A D's Avatar
    تاريخ عضويت
    Aug 2006
    پست ها
    1,383

    پيش فرض

    البته براي رفع مشكل برق يا غيره ميشه هنگامي كه سرور بانك رو باز كرد تمام خونه هاي اون فيلده رو توي جدول به صورت پيش فرض 0 كنه. اينجوري هيچ خونه اي 1 باقي نمي مونه.
    ... و ركوردهايي كه توسط كاربران ديگه در حال استفاده هست از lock خارج ميشه. يك مشكل حل شده N مشكل اضافه

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •