PDA

View Full Version : قفل کردن رکورد یا بانک



once4ever
یک شنبه 05 فروردین 1386, 23:43 عصر
من کد sql query میخوام که بتونم یک رکورد قفل کنم تا کاربرهای دیگه شبکه نتونند اونو تغییر بدهند یا حذف کنند
برای کنترل کاربرها
ممنون

samaneh_h
دوشنبه 06 فروردین 1386, 09:01 صبح
خب چرا از کاربر هنگام تغییر یک پسورد نمی‌گیری.من تا حالا همچین کدی که شما گفتی رو ندیدم و نشنیدم

once4ever
دوشنبه 06 فروردین 1386, 10:59 صبح
منظورمو اشتباه فهمیدید
موقی کار کردن چند کاربر روی بانک
ممکنه یکی مشغوا edit کردن یک رکورد باشه و کاربر دیگه بیاد اون رکورد پاک کنه!
دراین حالت مشکل بوجود میاد
چیزی مثل recordlock وجود داره (باید داشته باشه) که وقتی یک کاربر مشغول کار با رکورد شد. اون رکورد قفا بشه تا بقیه اجازه تغییر اونو تا پایان تغییرات نداشته باشند

moustafa
دوشنبه 06 فروردین 1386, 22:45 عصر
tools/option/advanc
در قسمت
default record locking
نوع قفل از نوع خوشبینانه ،بدبینانه و تمام رکوردها رو تعیین کنید
در کنارش در قسمت command_line argument
مدت زمان تغییر ،بروزسانی و ....... رو مقدار دهی کنی

once4ever
دوشنبه 06 فروردین 1386, 23:11 عصر
ممنون
من با c#.net میخوام اینکارو بکنم
کد sql query میخوام

davood-ahmadi
سه شنبه 07 فروردین 1386, 00:16 صبح
به نظر من اون چیزی که شما می خواهید ، نباید توی اکسس دنبالش بگردید. من فکر کنم شما باید با همان کانکشنی که با اکسس ارتباط برقرار می کند و امکان دسترسی اطلاعات را به شما می دهد باید انجام دهید مثلاً ADO.net

majid325
سه شنبه 07 فروردین 1386, 20:22 عصر
شما باید از قابلیت" ترانسکشن " MS SQL SERVER استفاده کنی.
میتونی در بخش sql جستجوش کنی.

ali_kolahdoozan
چهارشنبه 08 فروردین 1386, 09:30 صبح
برای رکوردهات یک فیلد از نوغ بیت بزار اگر مقدارش مثلا 1 بود بعنی اجازه داره . وگر نه جلوی هر کاری رو که میهواخهی توش بگیر . فقط توی کوئری باید این مقدار رو چک کنی

once4ever
چهارشنبه 08 فروردین 1386, 14:59 عصر
برای رکوردهات یک فیلد از نوغ بیت بزار اگر مقدارش مثلا 1 بود بعنی اجازه داره . وگر نه جلوی هر کاری رو که میهواخهی توش بگیر . فقط توی کوئری باید این مقدار رو چک کنی
خوب این اولین فکریه که کردم اما یکی به من گفت که قابلیت قفل کردن هم وجود داره! چون با گذاشتن یک فیلد کنترل چک کردن و آپدیت کردن اون فیلد هم یک زمانی میبره که تو حجم بالای کار ممکنه دونفر همزمان به یک فیلد آزاد برسند و هردو اونو قفل کنند و دیگه خودت میدونی که چی میشه

majid325
چهارشنبه 08 فروردین 1386, 15:31 عصر
خوب اگه بانکت sql دستوراتتو داخل یک ترانسکشن تعریف میکنی تو این حالت تا زمانی که دستوراتت به صورت کامل اعمال نشده هیچ کس نمیتونه عمل خاصی رو انجام بده .

morteza57
چهارشنبه 08 فروردین 1386, 15:36 عصر
خوب اگه بانکت sql دستوراتتو داخل یک ترانسکشن تعریف میکنی تو این حالت تا زمانی که دستوراتت به صورت کامل اعمال نشده هیچ کس نمیتونه عمل خاصی رو انجام بده .
سلام ، من تا حالا از ترانسکشن به این منظور استفاده نکردم ، می تونی یه sample کوچک بنویسی؟
متشکرم

majid325
پنج شنبه 09 فروردین 1386, 22:53 عصر
با sql استاندارد اوراکل در هنگام تعریف کردن ترانسکشن , ترانسکشن رو به صورت readonly میشه تعریف کرد , در MSsql رو دقیقا یادم نیست سر فرصت چک میکنم میگم.
ولی بدون حالت readonly هم میشه با چک کرد و "رول بک" این کار رو کرد.

majid325
پنج شنبه 09 فروردین 1386, 23:08 عصر
خوب نیازی به چک کردن من نداره , خودت لغت " Transaction " رو در بخش sql همین سایت جستجو کن (راهنمایی های جالبی هست )
البته قبلا هم گفته بودم درستش هم این بود که از اول سوال رو در بخش sql میپرسیدی هم زود تر به جواب میرسیدی هم روال و قوانین سایت رو رعایت کرده بودی.



شما باید از قابلیت" ترانسکشن " MS SQL SERVER استفاده کنی.
میتونی در بخش sql جستجوش کنی.