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