PDA

View Full Version : سوال: چه دستوری بنویسم که کاربری در شبکه یک رکورد را باز کرده کاربر دیگر در شبکه نتواند آن را پاک کند؟



ali_abbasi22145
سه شنبه 10 آذر 1394, 16:32 عصر
من از دلفی 7 با ado به SQL SERVER وصل می شوم.
چه دستوری بنویسم که کاربری در شبکه یک رکورد را باز کرده کاربر دیگر در شبکه نتواند آن را پاک کند؟

یوسف زالی
چهارشنبه 11 آذر 1394, 23:51 عصر
سلام علیکم.
می تونید از قفل گذاری جداول استفاده کنید که به تالار اس کیو ال مرتبط می شود.

ali_abbasi22145
پنج شنبه 12 آذر 1394, 00:32 صبح
سلام علیکم.
می تونید از قفل گذاری جداول استفاده کنید که به تالار اس کیو ال مرتبط می شود.

سلام
بی زحمت لینک تاپیکی که مشکل حل کرده اینجا می گذارید تا مشگلم حل شود؟

RahmanAmiriSh
پنج شنبه 12 آذر 1394, 18:36 عصر
میتونید یه فیلد بزارید توی دیتابیس که وقتی رکوردی در حال نمایشه مقدار فیلد بشه 1 و در دستور Delete هم شرط کنی که چنانچه مقدار این فیلد برابر با 1 باشه حذف نشه ، به همین راحتی به همین خوشمزه گی

یوسف زالی
جمعه 13 آذر 1394, 01:37 صبح
شما کلا به ترنس اکشن اعتقادی نداری؟
یه کم در مورد خصوصیت ACID تراکنش ها تحقیق کنید بعد دستور های خوشمزه بدید.
توضیح بدید که چه چیزی مانع از این می شه که دو کوئری همزمان فیلد رو یک نمی کنند؟

RahmanAmiriSh
جمعه 13 آذر 1394, 13:17 عصر
من از همین روش استفاده کردم و مشکلی هم ندارم ،
وقتی رکورد در حال مشاهده باشه مقدار فیلد برابر با 1 میشه و وقتی کسی بخاد حذفش کنه نمی تونه و زمانی که از حالت مشاهده خارج میشه مقدار برابر با 0 میشه و اگر کسی بخاد حذف کنه می تونه

Saeid59_m
یک شنبه 02 اسفند 1394, 14:14 عصر
من از همین روش استفاده کردم و مشکلی هم ندارم ،
وقتی رکورد در حال مشاهده باشه مقدار فیلد برابر با 1 میشه و وقتی کسی بخاد حذفش کنه نمی تونه و زمانی که از حالت مشاهده خارج میشه مقدار برابر با 0 میشه و اگر کسی بخاد حذف کنه می تونه

سلام
اگر ارتباط اون یوزری که فیلد رو 1 کرده با سرور قطع بشه (مثلا PC خاموش بشه) اون فیلد که 1 میمونه