PDA

View Full Version : جلوگیری از خواندن همزمان چند نفر از یک فیلد sql



alirzn
چهارشنبه 18 مهر 1386, 23:26 عصر
با سلام
چطور میشه نگذاریم دو نفر همزمان در یک لحظه به یک فیلد از sql دسترسی داشته باشن؟

alirzn
جمعه 20 مهر 1386, 11:54 صبح
کسی نیست کمکم کنه؟

SalarSoft
جمعه 20 مهر 1386, 13:10 عصر
به یک فیلد از sql
به یک فیلد نه به یک جدول.
اگر query خودتون رو (insert update delete) داخل یک Transaction قرار بدید تا پایان اون هیچ کاربر دیگری نمی تونه به جدول دسترسی داشته باشه.

فکر میکنم می خوای یک فیلد ID داشته باشید؟

alirzn
جمعه 20 مهر 1386, 13:29 عصر
آره Id هست.
این transaction رو چطور می تونم ایحاد کنم؟ میشه بیشتر توضیح بدید؟


به یک فیلد نه به یک جدول.
اگر query خودتون رو (insert update delete) داخل یک Transaction قرار بدید تا پایان اون هیچ کاربر دیگری نمی تونه به جدول دسترسی داشته باشه.

فکر میکنم می خوای یک فیلد ID داشته باشید؟

SalarSoft
جمعه 20 مهر 1386, 14:04 عصر
آره Id هست.
این transaction رو چطور می تونم ایحاد کنم؟ میشه بیشتر توضیح بدید؟

این نحوه استفاده از SqlTransactin رو نشون میده.


SqlConnection conn;
SqlTransaction trans = conn.BeginTransaction();
try
{
// Do what you want to do
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw;
}

تا رسیدن به یکی از دستورات Commit یا Rollback جدولی که روی اون عملیاتی صورت گرفته برای سایر درخواست ها غیر قابل دسترسی میشه. و اون درخواست ها منتظر بایان این transaction باقی میمونند. معمولا 20 تا 30 ثانیه.
پس سی کن که مدت زمان آغاز و پایان حداقل باشه.

برای identity کردن فیلدت هم مقدار پراپرتی Identity رو yes ست کن!!

alirzn
شنبه 21 مهر 1386, 12:11 عصر
trans.Commit();
یعنی همون دستور خواندن از جدولرو بمویسم؟




این نحوه استفاده از SqlTransactin رو نشون میده.


SqlConnection conn;
SqlTransaction trans = conn.BeginTransaction();
try
{
// Do what you want to do
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw;
}

تا رسیدن به یکی از دستورات Commit یا Rollback جدولی که روی اون عملیاتی صورت گرفته برای سایر درخواست ها غیر قابل دسترسی میشه. و اون درخواست ها منتظر بایان این transaction باقی میمونند. معمولا 20 تا 30 ثانیه.
پس سی کن که مدت زمان آغاز و پایان حداقل باشه.

برای identity کردن فیلدت هم مقدار پراپرتی Identity رو yes ست کن!!

SalarSoft
شنبه 21 مهر 1386, 14:27 عصر
نه به جای


// Do what you want to do کد مورد نظر خودتو بنویس

alirzn
یک شنبه 22 مهر 1386, 07:06 صبح
منظورت query که می خوام مثلا یک فیلد رو بخونه؟


نه به جای
کد مورد نظر خودتو بنویس

سار
یک شنبه 22 مهر 1386, 13:18 عصر
http://brad.barnamenevis.org/?p=23