مشاهده نسخه کامل
: استفاده مشترک دو کامپیوتر از دیتابیسی که روی یکی از دستگاه هاست
shahinfarasystem
27-08-2010, 15:32
سلام
من دو تا کامپیوتر دارم می خوام روی یکی شون یه دیتابیس بگذارم
که به طور مشترک توی یه برنامه تحت ویندوز بتونیم از اون بانک توی هر دو تا کامپیوتر استفاده کنیم
میشه راهنمایی کنید توی برنامنم یا توی بانکم باید چه تنظیماتی انجام بدم؟
ممنونم:10::10:
سلام و خسته نباشید.
مشکلی وجود ندارد.
در خصوص برنامه هایتان که تقریباً کار خاصی لازم نیست!
فقط کافی است،
1-برنامه را طوری نوشته باشد که کارکرد همزمان چند کاربر روی دیتابیس تداخلی پیش نیاورد.
2- جایی و قابلیتی و تنظیمی در برنامه داشته باشید که کاربر بتواند پارامترهای ConnectionString را تنظیم کند.
(
مثالی از ویرایش و ذخیره ConnectionString در برنامه:
support.h02.ir/fwlink/?LinkId=1001372507
)
=====
در خصوص دیتابیس و سرور SQL Server هم ...
1-بهتر است از نسخه های غیر EXPRESS استفاده و نصب کنید.
2-دیتابیس را به SQLServer اتچ کنید.
3-درسرور و برای دیتابیس یک Login و User و Pass بسازید و مجوزهای لازم برای دسترسی به دیتابیس مورد نظر صادر کنید.
(
برای اطلاعات کاملتر به تاپیک های زیر مراجعه کنید:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
)
موفق باشید.
shahinfarasystem
27-08-2010, 21:11
سلام
1-برنامه را طوری نوشته باشد که کارکرد همزمان چند کاربر روی دیتابیس تداخلی پیش نیاورد.
میشه در مورد این یه توضیح بفرمایید که چجوری باید این کار رو بکنم؟
بازم ممنون
سلام
میشه در مورد این یه توضیح بفرمایید که چجوری باید این کار رو بکنم؟
قبلاً در این مورد در تاپیک زیر بحث هایی شده:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
و یا نکته ای کوچک در این پست:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
در کل و در اغلب موارد، داشتن یک PrimaryKey از نوع AutoNumber که همیشه یکتا باشد و غیر قابل تغییر و تکرار باشد و هیچگاه، حتی بعد از حذف هم امکان تکرار نداشته باشد، خیلی کمک میکند و اغلب مشکلات را حل میکند.
لزومی هم ندارد که کاربر برنامه از وجود همچین فیلدی و از مقدار ان مطلع باشد!
مثلاً اگر جدولی پرسنلی دارید که اطلاعات کارکنان را نگاه میدارد، شما فیلد PrimaryKey-Autonumber تعبیه میکند و در تمام Relation ها از ان استفاده میکنید و همه اعمال داخلی برنامه مثل شرط WHERE در SQL-DELETE یا SQL-WHERE با این فیلد انجام میشود.
سپس میتوانید در کنار این فیلد و مثل فیلدهای عادی نام و نام خانوادگی و شماره شناسنامه و... فیلدی برای کدپرسنلی شرکتی فرد هم داشته باشد، که همه جا هم نشان داده شود و اپراتور رایانه هم بتواند، به سادگی آن را ویرایش کند و برنامه شما هم همه جا ان را نشان دهد ولی این PrimaryKey نباشد.
مجدد تکرار میکنم که داشتن فیلد Primarykey-AutoNumber به علت یکتا و در حالت معمول غیر قابل ویرایش بودن و عدمم تکرار حتی بعد از حذف، میتواند خیلی از مشکلات دسترسی همزمان به منابع را که Primarykey شناسایی و تاییک میشوند بر طرف کند.
(
این تضمین را میدهد که بعد از ان که کلاینی یک سطر اطلاعات را نشان داد، هر چقدر زمان هم که سپری شود. از کلاینت دیگر PrimaryKey ان تغییر نمیکند و اطلاعات ان کلاینت همواره به سطر صحیح اشاره میکند.
همان سطری که نشان داده میشود حتماً همان سطری است که عملی روی آن انجام میشود.
)
=====
مثال ساده ای از خطای همزمان در شبکه:
مثلاً اگر به اشتباه Primarykey غیر autonumber و همان کدپرسنلی سازمانی باشد.
اپراتوری چند نفر را جدید ثبت میکند...
شما از رایانه خودتان، اطلاعات جدید را میبینید و مثلاً باید ثوابق شغلی و عکس و... این افراد جدید را شما تکمیل کنید.
شما فرم را باز میکنید و شروع به ویرایش اطلاعات فردی با کدپرسنلی 110 میکنید ...
اپراتور اولیه متوجه اشتباهی در درج کد پرسنلی ها میشود و سریع آنها را جابه جا و تصحیح و ذخیره میکند.
کار شما هم تمام میشود و دستور ذخیره میدهد...
ولی برنامه شما میرود و اطلاعات فردی با کد 110 را عوض میکند، درحالیکه شاید به دلیل آخریت تصحیح اپراتور دیگری، از زمانی که شما فرم را بازکرده اید تا ویرایش تمام شده و ذخیره کرده اید، فرد 110 عوض شده!
و الان تمام آن تغییرات در پرونده رایانه فرد دیسگری که شما قصد نداشتید ثبت میشود!!!
=====
از قبیل این مشکلات در کارکرد شبکه ای انلاین و آفلاین+سینک در انواع جداول و انواع مختلف اعمال قابل وقوع است که راه حل بیان شده تغریباً مشکل برنامه های انلاین را به طور کامل مرتفع میکند.
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.