سلام ، من برنامه اي را با بانك access نوشتم ،اما حالا بايد تحت شبكه بشه ، براي تبديلش به SQL علاوه بر تبديل اشياء ado.net از OLEDB به SQL بايد چيكار كنم؟ مشكل همزماني تو شبكه است نميدونم چيكار كنم ، برنامه رو بايد تحويل بدم دوستان راهنمايي كنين.
سلام ، من برنامه اي را با بانك access نوشتم ،اما حالا بايد تحت شبكه بشه ، براي تبديلش به SQL علاوه بر تبديل اشياء ado.net از OLEDB به SQL بايد چيكار كنم؟ مشكل همزماني تو شبكه است نميدونم چيكار كنم ، برنامه رو بايد تحويل بدم دوستان راهنمايي كنين.
پیشنهاد می کنم از ترانزیشن ها و روالهای ذخیره شده در Sql server استفاده کنی البته یکم طول می کشه یاد بگیری ولی اگه یاد بگیری می تونی یک برنامه حرفه ایی رو به مشتریت تحویل بدی .
دوست من؛ منظورت Dead Lock است؛ مشکل Insert همزمان اعضای شبکه ؟
در این صورت باید کلید اصلی شما؛
1- از نوع Identity باشد یا
2- از نوع GUID باشد و با تابع NewID مقداردهی شود (یک مقدار 128 بیتی که در تمامی دنیا منحصر به فرد است) و یا
3- در کلید اصلی جدول هایی که در آنان Insert میکنید؛ کلید اصلی را به صورت دستی در برنامه تعیین کنید و 2 یا 3 رقم ابتدایی آن را (بسته به تعداد کلاینت ها) از 3 رقم منحصر به فرد ID کلاینت تشکیل دهید.
بدین صورت که اگر مثلا من با ID 1020 به برنامه Login کرده ام؛ کلید اصلی رکوردی که درج میکنم؛ در ابتدایش 1020 باشد و بقیه اش کدی منحصر به فرد.
اما اگر مشکل شما مورد دیگری است؛ خواهشا کاملا توضیح دهید
مرسی از جوابتون ، واقعاً با بودن جامعه ای مثل برنامه نویس آدم اعتماد بنفس پیدا میکنه ، دوست عزیز مشکلم اینه که نمی دونم اگه دو تا کاربر همزمان بخوان رکوردی را تغییر بدن چه اتفاقی می افته؟ آیا خود SQL Server مدیریتش می کنه؟ یعنی رکوردی را که تغییر میده lock میکنه یا من باید تو کدهام lockش کنم؟ حالا اگه کاربر دیگه ای بخواد یه رکورد lock شده را تغییر بده آیا Exception رخ میده؟ میخوام تا اونجایی که میشه خطایی تو برنامم رخ نده. لطفاً یه کد نمونه اگه می تونی برام بذار، برناممو به زبان #C نوشتم.
SQLSERVER قاعدتا باید خودش مدیریت کنه DBMS =Database Management System
لازم نیست توی برنامه شما کار خاصی انجام بدین