امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكل در بانك اطلاعاتي و شبكه
نویسنده پیام
esnaashari آفلاین
تازه وارد

ارسال‌ها: 22
موضوع‌ها: 5
تاریخ عضویت: شهریور ۱۳۸۳

تشکرها : 0
( 5 تشکر در 1 ارسال )
ارسال: #1
مشكل در بانك اطلاعاتي و شبكه
با عرض سلام خدمت اساتيد محترم
من يك سوال دارم اگه كسي از شماها ميدونه لطف كنه و به من بگه
سوال : چطوري ميشه وقتي كه يك برنامه بانك اطلاعاتي توي شبكه در حال كار هست
و يك كاربر قصد ويرايش آن را دارد به كاربران ديگه امكان دسترسي به اون فيلد را نداد
تا زماني كه شخض اول كار ويرايش خود را انجام بده :?:
در ضمن بانك من هم mysql و زبان برنامه نويسي هم vb ميباشد
خدانگهدار
منتظرم
۰۹-دى-۱۳۸۴, ۲۲:۴۳:۴۱
ارسال‌ها
پاسخ
ali110 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 91
موضوع‌ها: 21
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 0
( 7 تشکر در 6 ارسال )
ارسال: #2
 
با سلام
خدمت دوست عزيزم عرض كنم كه در صورتي كه از آبجكت ado استفاده ميكنيد :
اولا نوع بانك تفاوتي ندارد لذا راه حلي كه خدمتتون اريه خواهم كرد در تمامي بانكها صادق ميباشد .
دوما :
ميريم سر اصل مطلب . در جواب شما بايد عرض كنم كه ما دو نوع قفل داريم :
1- قـفـل كـردن كل بـانــك
2- قـفـل كـردن جـدول
حــالت اول :
درصورتي كه ما بخواهيم كليه جدولهاي بانك را به روز رساني كنيم ( يعني ميخواهيم كليه جدولها را تغيير دهيم كه اين تغيير ميتواند تغيير ساختار جداول باشد يا تغيير محتويات جداول )
آنگاه كل بانك را قفل ميكنيم . اين حالت معمولا خيلي كم پيش مي آيد و در ضمن تنها از سوي مديريت انجام ميشود .
حــالـت دوم :
در این حالت جدول یا رکورد قفل میشود . نمونه این حالت همان است که خودتان پرسیده اید . در این حالت هنگام باز کردن رکوردست (Recordset) جدول یا رکورد را قفل میکنیم .
قبل از آنکه روش کار را عرض کنم نکته ای وجود دارد که باید به آن توجه کنید . ما دو نوع قفل برای جدول داریم یا بهتر بگویم دوحالت داریم . در حالت اول که حالت خوش بینانه (Optimistic)

نام دارد تنها زمانی جدول قفل میشود که برنامه به دستور Update برسد و تازمانی که کار Update تمام نشده جدول برای سایر کاربران قفل میباشد . حالت دوم حالت بدبینانه

(pessimistic) نام دارد که در این حالت هنگامی که برنامه به دستورات مربوط به Edit بـرسد جدول را قفل میکند و این قفل تازمانی که کار دستور Update انجام نشده ادامه دارد . حالت

اول که واضح است .اگر فرضا نام رکوردست Rs باشــد زمانی قفل اعمال میشود که به دستور Rs.Update برسد و هنگامی قفل برداشته میشود که به دستور بعدی برود .اما اگر بخواهم

مثالی برای حالت دوم بزنم باید بگم در مثال زیر زمانی که به دستور خط 10 برسد جدول قفل میشود و زمانی که به خط 14 برسد قفل برداشته میشود .
کد:
1 -   Dim Db As New Adodb.Connection
2 -   Dim Constr As String
3 -   Constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db.mdb"
4 -   Db.Open (Constr)
5 -   Dim Rs as Recordset
6 -   Set Rs = New Adodb.Recordset
7 -   Dim Sql As String
8 -   Sql = "Select  * From  [Mytbl]  Where id = 105"
9 -   Rs.Open(Sql , Db , adOpenKeyset , adLockPessimistic )
10 - Rs!name = "ali110"
11 - Rs!family = "Kavousifar"  
12 - Rs!phone = "22222222222222"  
13 - Rs.Update
14 - Rs.Close
15 - Db.Close  
16 - Rs = Nothing
17 - Db = Nothing
در حالت کلی برای قفل کردن جدول به صورت خوش بینانه داریم :
کد:
Rs.Open(Sql , Db , adOpenKeyset , adLockOptimistic )
Or
Rs.Open(Sql , Db , adOpenKeyset , 3 )
و در حالت بدبینانه :
کد:
Rs.Open(Sql , Db , adOpenKeyset , adLockPessimistic )
Rs.Open(Sql , Db , adOpenKeyset , 2 )

توجه داشته باشید که در متد open مربوط به Recordset آخرین پارامتر مربوط به نوع قفل میباشد . به صورت کلی مقادیر مجاز برای پارامتر قفل موارد زیر باشند که مقادیر عددی آنها نیز
آورده شده است .
کد:
'---------------- Lock Type Values ---------------------
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
'----------------------------------------------------------
امیدوارم موفق و موید باشید .
قربان شما علی110
۱۰-دى-۱۳۸۴, ۰۷:۳۰:۳۱
وب سایت ارسال‌ها
پاسخ
ali110 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 91
موضوع‌ها: 21
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 0
( 7 تشکر در 6 ارسال )
ارسال: #3
 
اي بابا اين سايت ديگه اعصاب خورد كن شده ها :evil:
هنوز جواب سوال رو نداده رفت تو آرشيو .
۱۱-دى-۱۳۸۴, ۰۵:۴۱:۰۳
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Exclamation [سوال] برنامه‌‌اي كه روي رايانه‌ي ديگران مشكل دارد. PRO 6 4,745 ۱۳-شهریور-۱۳۹۱, ۱۰:۲۳:۴۳
آخرین ارسال: PRO
  مشكل ذخيره و مقايسه تاريخها به صورت شمسي NabiKAZ 16 17,965 ۲۳-اسفند-۱۳۹۰, ۰۰:۱۵:۳۶
آخرین ارسال: ahoo_tanha2012
  [سوال] مشكل در ذخيره و ذخيره مجدد فايل restles20 9 5,871 ۲۸-آبان-۱۳۹۰, ۱۱:۴۸:۰۹
آخرین ارسال: restles20
  [سوال] مشكل در مرتب سازي جدول naser67 2 3,654 ۰۲-شهریور-۱۳۹۰, ۱۵:۲۳:۳۹
آخرین ارسال: parham2010
  [سوال] مشكل برنامه نويسي در vb لطفا كمكم كنيد galaxyking 3 3,647 ۳۰-خرداد-۱۳۹۰, ۰۰:۱۲:۴۴
آخرین ارسال: galaxyking
  [سوال] مشكل در اجراي يك برنامه abi_hf 1 2,282 ۲۹-فروردین-۱۳۹۰, ۱۵:۵۵:۱۵
آخرین ارسال: Mr.pRoGraMmer
  مشكل حروف مثل ؟؟؟؟ RezaS_1354 3 3,776 ۲۰-اسفند-۱۳۸۹, ۱۷:۳۹:۴۰
آخرین ارسال: RezaS_1354
  مشكل با microsoft agent control 2 shahram_g 0 1,973 ۳۱-خرداد-۱۳۸۹, ۱۳:۴۳:۴۹
آخرین ارسال: shahram_g
  مشكل در نوشتن ocx ? saeedvir 1 2,174 ۲۵-مهر-۱۳۸۸, ۲۰:۲۵:۳۱
آخرین ارسال: babyy
  بانك اطلاعاتي mtf 0 1,955 ۲۵-شهریور-۱۳۸۸, ۱۵:۵۱:۱۳
آخرین ارسال: mtf

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS