لازم است تعدادی از اطلاعات یک کوئری یا جدول پیش از پست شدن ابتدا تغییر یافته و در موقع پست شدن شرایط مورد نیاز چک شود تا در صورت تداخل مانع از پست شدن گردد چه کار باید کرد؟
لازم است تعدادی از اطلاعات یک کوئری یا جدول پیش از پست شدن ابتدا تغییر یافته و در موقع پست شدن شرایط مورد نیاز چک شود تا در صورت تداخل مانع از پست شدن گردد چه کار باید کرد؟
قبل از استفاده از دستور POST چکینگ را انجام دهید و اگر شرایط حاصل نشده بود از دستور Abort استفاده کنید و در غیر اینصورت POST را فراخوانی کنید.
... چه بگویم که غم از دل برود چون تو بیایی
بستگی به نوع بانک اطلاعاتی که شما استفاده می کنید دارد شما در صورت استفاده از بانک اطلاعتی Sql server شما می توانید برای بالا رفتن سرعت کار روند ورود خروج را با استفاده از یک Stored procedure کنترل کنید و در صورت بر قرار نبودن این شرایط ثبت داده ها انجام نشود فکر کنم با این کار سرعت شما در Post کردن اطلاعات بالا برود
کاری که می خوام انجام بدم ی چیز دیگه هست.
کابر باید یک سری از رکوردها را دستکاری کنه. مثلا ممکنه یک قفیلد Identity را تغییر بده. این فیلد در این لحضه دااری دو مقدار یکسان می باشه. اما کاربر رکورد دیگه ای رو بعدا تغییر خواهد داد تا این فیلد با به صورت همان در اد. بعد از اعمال این تغییرات کاربر باید ذخیره سازی رو انجام بده و در صورت پیش اومدن اشتباه در تکرار داده باید برنامه خطای مناسبی را براش صادر کنه تا کاربر اونو اصلاح کنه تا فیلد به صورت همانب دراد.
جدول موقت روی بانک. در این صورت کاربر دیگر هم می تونه اطلاعات اونو دسنکاری کنه و ممکنه تداحل پیش بیاد.
استفاده از Group By روی فیلد منظورتونه؟!
باید قبل از عمل کنترل تکراری بودن دادها برنامه را در حالت ترنزکشن قرار داده
بعد از عمل پست اطلاعات داده را مجدادا برای تکرار کنترل
در حالت درست بودن عمل کامیت را انجام دهی
Begintrans
Check
Post
Check ----> اگر در این مرحله تکراری بود اطلاعات به معنی این است که هر دو پست همزمان رخ داده است و باید اطلاعت Rollback شود
Commit
چه جوری ایجادش کنم.جدول موقت برای هر کاربری رو کلاینت خودش مثل یک فایل Xml که بعدا قرار است درجدول اصلی بانک اطلاعاتی اعمال شود
من فعلا چیری شبیه به این رو با StringGrid انجام می دم اما کار یک کم سخته.