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

نام تاپیک: جلوگیری از همزمان وارد کردن اطلاعات

  1. #1
    کاربر دائمی آواتار mojtabadj
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    251

    Lightbulb جلوگیری از همزمان وارد کردن اطلاعات

    سلام دوستان

    برنامه من تحت شبکه هست و کلاینت ها اطلاعات رو در بانک سرور ذخیره میکنند . حال من نمیخوام

    که رو یک جدول همزمان چند کلاینت اطلاعات رو وارد کنند .

    برای اینکه در آن واحد فقط یک کلاینت بتونه در جدول کار عملیات انجام بده باید جیکار کرد؟

    با تشکر از دوستان

  2. #2
    کاربر دائمی آواتار ebrahimv
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    وايقان
    سن
    34
    پست
    391

    Thumbs up نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    شما چرا می خواهی محدودیت ایجاد کنی
    اگه هم با هم وارد کنن فکر نکنم هیچ مشکلی پیش بیاد.
    مگر این که در برنامه نویسیتون درست عمل نکرده باشید.

  3. #3
    کاربر دائمی آواتار mojtabadj
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    251

    نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    کسی نیست جواب بده؟

  4. #4

    نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    ببین دوست عزیز ، وارد کردن اطلاعات به طور دقیقا همزمان اتفاق نمی افته و حتما یه اختلاف چند صدم ثانیه داره و 2 عمل جدا به حساب میاد . شما اگر بانکت رو درست طراحی کرده باشی قطعا مشکلی نخواهی داشت . فرض کن توی جدولی کلید اصلی شما یه فیلد Identity هستش ، اگر 2 رکورد براس ثبت ارسال بشن قطعا یکی اول درج میشه و بعد رکورد دوم ثبت میشه . یا برای مثال دیگه فرض کنم یه فیلد رو عنوان کلید انتخاب کرده باشیم ، 2 رکورد هم برای این فیلد یک مقدار شبیه هم ارسال کردن ، اولی که درج شد دیگه sql از رکورد دوم خطا میگیره و اجازه ثبت نمیده . اما اگر شما فیلد رو توی جدولتون به عنوان کلید انتخاب نکنی و فقط توی فرم چک کنی که رکوردی با شرط وجود این فیلد وجود داره یا و بعد عمل ثبت رو امجام بدی ممکنه تو فاصله چک کردن فیلد تکراری تا ارسال رکورد ، رکورد دیگه ای با اون شرط ارسال بشه . پس اگر بانکتون درست طراحی بشه مشکلی در ورود اطلاعات نیست .

    اما موضوع دیگه ویرایش و یا حذف اطلاعات هستش . یه وقت پیش میاد که اطلاعات یک جدول برای 2 کاربر نمایش داده میشه و کاربر 1 میاد از مثلا تعداد یک کالایی 5 تا کم میکنه و تغیرات رو توی فرم محاسبه میکنه و فقط مقدار جدید رو توی بانک ذخیره میکنه و کاربر دوم هم میخواد به تعداد 3 تا اضافه کنه و اون هم تغیرات رو توی فرم محاسبه میکنه و فقط مقدار نهایی رو آپدیت میکنه . اینجا کاربر شماره 2 ، اعداد 3تارو به مقداری که موقع نمایش جدول دریافت کرده اضافه میکنه نه اون مقداری که بعد از تغیرات کاربر شماره 1 توی جدول قرار گرفته .

  5. #5

    نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    دوستمون درست مي گن...
    من هم برنامه داشتم كه 4 تا سيستم با هم اطلاعات وارد مي كردن و هيچ مشكلي نداشتن...
    اما اگر روي اين كار اصرار داري مي توني وقتي يكي از كلاينت ها فر مي رو باز كرد مقداري رو در رجيستري يا بانك (مثلا 0 و 1)قرار بدي و هنگان باز كردن فرما چك كني كه اگه 1 بود يعني فرم در يكي از كلاينتها باز است و اجازه ادامه كار بهش ندي
    راه ديگه اي به ذهنم نمي رسه..

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    کرمانشاه
    پست
    398

    نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    بهترین راه استفاده از عکس العملیه که اجرای 1 تراکنش در پی داره.یعنی Lock کردن 1 رکورد در زمان اجرای تراکنش.اگه اطلاعات کامل بخای کلی توضیح داره و اصلا 1 بحث تخصصی در زمینه پایگاه اطلاعاتیه.اگه به بخش SqlServer سری بزنی آستاد ثباتی توضیحات کاملی رو برای این مورد دادن.
    Xlock,Rlockو.....

  7. #7
    کاربر دائمی
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    کرمانشاه
    پست
    398

    نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    در ضمن اون بحث 0و1 از بیخ و بن کار غلطیه .اگر برق حین کار قطع شد یا سرور Crash کرد چیکار میکنین؟خب اون 1 همیشه 1 میمونه!!!!!!!!!!!!!!!!!

  8. #8

    نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    با سلام
    Lock کردن جدول راه حل شما است. ولی در این صورت همزمانی رو در سیستم خودتون از بین می برین.
    آیا واقعا در سیستم شما نیازی به چنین کاری هست؟

  9. #9

    نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    نقل قول نوشته شده توسط hooooman مشاهده تاپیک
    در ضمن اون بحث 0و1 از بیخ و بن کار غلطیه .اگر برق حین کار قطع شد یا سرور Crash کرد چیکار میکنین؟خب اون 1 همیشه 1 میمونه!!!!!!!!!!!!!!!!!
    ممنون از راهنماييتون دوست عزيز

  10. #10
    کاربر دائمی آواتار mojtabadj
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    251

    نقل قول: جلوگیری از همزمان وارد کردن اطلاعات

    نقل قول نوشته شده توسط hooooman مشاهده تاپیک
    بهترین راه استفاده از عکس العملیه که اجرای 1 تراکنش در پی داره.یعنی Lock کردن 1 رکورد در زمان اجرای تراکنش.اگه اطلاعات کامل بخای کلی توضیح داره و اصلا 1 بحث تخصصی در زمینه پایگاه اطلاعاتیه.اگه به بخش SqlServer سری بزنی آستاد ثباتی توضیحات کاملی رو برای این مورد دادن.
    Xlock,Rlockو.....
    با تشکر از شما تو اون تالار هم پست دادم ولی شما ebook در مورد این قفل کردن ها ندارید؟

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

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