PDA

View Full Version : نحوه تعریف Connection برای نرم افزار تحت شبکه چند کاربره



top7news
شنبه 21 اردیبهشت 1387, 14:39 عصر
سلام مجدد به همه دوستای عزیز
یکی از دوستام بهم گفت که اگه توی نرم افزاری که تحت شبکه باشه همزمان چند کاربر درخواست connection به بانک رو بدن سیستم هنگ میکنه ، این درسته
یعنی اگه به فرض من و 2 کاربره دیگه همزمان درخواست ثبت اطلاعات در یک جدول رو بکنیم ، بانک پیغام خطا میده و این کار برای هیچ یک از ما انجام نمیشه ، این موضوع درسته؟؟
و اگه درست کسی از شما دوستتان راه حلی براش در نظر داره و یا به همچین مشکلی برخورده؟؟
ممنون از توجهتون

saied_genius
شنبه 21 اردیبهشت 1387, 17:45 عصر
با سلام

از نظر اتصال چند نفر به یک دیتابیس ، اگر دیتابیس SQL باشد و SERVER هم SQLSERVER باشد در ارتباط چند نفر همزمان هیچ مشکلی پیش نمی آید .

برای ریختن اطلاعات همزمان در یک دیتابیس هم ، از Multi Threading استفاده کنید.

موفق باشید.

top7news
شنبه 21 اردیبهشت 1387, 19:56 عصر
سلام
ممنون از راهنماییتون
من بانکم SQL Server 2005 ولی توی Connection Stringاسم سرور رو اینطوری نشون میده : Payam\SQLEXPRESSاین یعنی اینکه داره از SQL Express استفاده میکنه؟ یا نه فقط یه اسمه؟
و اگه خود SQL نیست چی کار باید بکنم؟؟
در مورد
برای ریختن اطلاعات همزمان در یک دیتابیس هم ، از Multi Threading استفاده کنید. این هم اگه میشه راهنمایی کامل تری بکنید.
بازم ممنون از توجهتون

محمدامین شریفی
شنبه 21 اردیبهشت 1387, 21:06 عصر
سلام
ممنون از راهنماییتون
من بانکم SQL Server 2005 ولی توی Connection Stringاسم سرور رو اینطوری نشون میده : Payam\SQLEXPRESSاین یعنی اینکه داره از SQL Express استفاده میکنه؟ یا نه فقط یه اسمه؟
و اگه خود SQL نیست چی کار باید بکنم؟؟
در مورد این هم اگه میشه راهنمایی کامل تری بکنید.
بازم ممنون از توجهتون
عزیزم sql server express ارزانترین نوعش هست و به نظر من بیشتر افراد از آن استفاده می کنند.sql server enterprise هم گرانترین آن.تفاوت اصلی آن ها اینست که اولی برای خانه و شرکت های کوچک است و دومی برای کارخانه هاست.
تازه من که asp کارم اجازه دادم که چند نفر با ip های مختلف یک پایگاه داده (حتی یک جدول) را هم زمان تغییر دهند:متعجب:
اگه پرسشی از نهوه نصب شدن داری بپرس؟

top7news
یک شنبه 22 اردیبهشت 1387, 13:04 عصر
نه عزیزم
من نگفتم توی نصبش یا کار با SQL مشکل دارم
سوال من از saied_genuisعزیز دز موزد زاهنمایی بود که کردم
یادم نمیاد گفته باشم SQL بلد نیستم یا فرق express , enterpriss رو نمیدونم
به هر حال از توجهت ممنون

محمدامین شریفی
یک شنبه 22 اردیبهشت 1387, 22:48 عصر
نه عزیزم
من نگفتم توی نصبش یا کار با SQL مشکل دارم
سوال من از saied_genuisعزیز دز موزد زاهنمایی بود که کردم
یادم نمیاد گفته باشم SQL بلد نیستم یا فرق express , enterpriss رو نمیدونم
به هر حال از توجهت ممنون

من قصد جسارت نداشتم.منظورم هم نحوه ی نصب شدن چند نفر به یک پایگاه داده بود نه نصب کردن msSQL2005. پیروز باشید

shahinghorbani
دوشنبه 23 اردیبهشت 1387, 07:28 صبح
اگر سوالم مسخره است ببخشيد . مي خواستم بپرسم وقتي ما يك ارتباط را برقرار ميكنيم سرور را معرفي ميكنيم حالا برنامه اي كه در خانه ميخواهيم بنويسيم و هنوز معلوم نيست كه كجا ميخواهد نصب بشه و نام سرور را نداريم مشكل ساز نميشه؟ اگر لوكال بديم اون وقت تمام كلاينت ها مي تونند ارتباط برقرار كنند؟؟

razavi_university
دوشنبه 23 اردیبهشت 1387, 11:43 صبح
اگر سوالم مسخره است ببخشيد . مي خواستم بپرسم وقتي ما يك ارتباط را برقرار ميكنيم سرور را معرفي ميكنيم حالا برنامه اي كه در خانه ميخواهيم بنويسيم و هنوز معلوم نيست كه كجا ميخواهد نصب بشه و نام سرور را نداريم مشكل ساز نميشه؟ اگر لوكال بديم اون وقت تمام كلاينت ها مي تونند ارتباط برقرار كنند؟؟
دوست عزيز بهتره سوال جديدي كه ربطي به تاپيك فعلي ندارند در يك تاپيك جدا پرسيده شوند. (هرچند سوال شما تكراري است و قبلا پرسيده شده ، بهتره قبل از زدن پست جديد جستجو كنيد تا جوابهاي كاملي در اين رابطه بيابيد) به صورت اجمالي :
بله بايد به صورت Local استفاده كنين و يا Local\SQLExpress و يا قسمتي در برنامه تون براي تنظيم نام سرور در نظر بگيريد
موفق باشيد

top7news
دوشنبه 23 اردیبهشت 1387, 11:48 صبح
سلام
مرسی دوست عزیز bia2dadash2 خوب من منظورتون و بد فهمیدم ، یه جورایی نوشتتون دو پهلو بود
از دوستای عزیزی هم که تو این تاپیک مطالب بی ربط پرسیدن خیلییییییییییییی ممنون ، به به ، به به
بابا کسی نبود جواب سئوال منو بده؟؟

محمدامین شریفی
سه شنبه 24 اردیبهشت 1387, 11:36 صبح
سلام
مرسی دوست عزیز bia2dadash2 خوب من منظورتون و بد فهمیدم ، یه جورایی نوشتتون دو پهلو بود
از دوستای عزیزی هم که تو این تاپیک مطالب بی ربط پرسیدن خیلییییییییییییی ممنون ، به به ، به به
بابا کسی نبود جواب سئوال منو بده؟؟
دوست گرامی به نظر من اگر شما در شبکه از asp استفاده کنید بهتر است چون با کنترل sql data source میشود از data conflint جلوگیری کرد در c# من چند مقاله رو پیدا کردم :
http://www.informit.com/articles/article.aspx?p=31093
اگه مشکلی تو ترجمه داشتی در خدمتم

محمدامین شریفی
سه شنبه 24 اردیبهشت 1387, 11:40 صبح
پرسشت را تحت عنوان : Multi Threading در بخش sql server بیان کن
پیروز باشید

top7news
سه شنبه 24 اردیبهشت 1387, 21:42 عصر
bia2dadash عزیز من این مشکل رو با چند تا از دوستای سی شارپ کارم هم مطرح کردم
اونا یه چیزایی در مورد چند ریسمانی برام توضیح دادن و من فهمیدم که این مشکلم اصلا ربطی به چند ریسمانی بودن و نبودن نداره ، این مشکل مربوط به تعریف حق دسترسی هاست.یعنی اینکه اگه مثلا چند نفر همزمان به یه بانک دسترسی پیدا کنن یا بخوان Update وinsert انجام بدن توی یه جدول و در یه لحظه،اینجاس که به مشکل بر می خورم ، من واسه این موضوع و رفع اون راهنمایی می خوام.
همین دوستم گفت که با کد نویسی بر طرف میشه ولی خودش راهنمای کاملتری نکرد
اگه از دوستای خوب اینجا کسی چیزی میدونه ممنون میشم راهنمایی کنید .
ضمنا از دوستای عزیزم می خوام اینو بپرسم که این موضوع سئوال من مربوط به Permission های خود SQL هست؟؟
اگه اینطوره بگین تا این پرسش رو ببرم توی تالار sql مطرح کنم .

محمدامین شریفی
چهارشنبه 25 اردیبهشت 1387, 09:55 صبح
دوست من همانگونه که گفتم در asp.net کنترلی به نام sql data source دارد هنگامی که داری تنظیمات کانکشن انجام میدی در قسمت پایانی که میتونی فیلد های جدول رو انتخاب کنب .باید کلید اصلی را انتخاب کنی و گزینه ای در سمت پایین و راست وجود دارد که اینگونه نوشته شده است:17533

تو میتونی برای دسترسی همزمان چند نفر به یک پایگاه داده در C# از dataset و windows service استفاده کنی(چون انتقال اطلاعات بین چند نرم افزار با هم با این ممکن است)یادگیری این هم با چند کلیک wizardحل می شود. پرسشت را دو باره در این بخش تحت عنوان :چگونگی ارتباط چند نرم افزار باwindows service مطرح کن .بیشتر از این نمیدونم
پیروز باشید

bobrus
چهارشنبه 25 اردیبهشت 1387, 13:37 عصر
ببخشيد من VB كار هستم وتازه دارم C# كار مي كنم هنوز به مرحله بانك اطلاعاتي نرسيدم ولي توي VB با ابزارهايي كه داريم و به بانك وصل مي شيم يه خصوصيت به اسم Clone داره كه وظيفش اينه كه ركورد رو براي اولين كسي كه داره ازش استفاده مي كنه قفل مي كنه و بنابراين كاربراي ديگه نمي تونن تغييري توش بدن فكر كنم شما هم به يه همچين چيزي تو #C نياز داريد
اميدوارم تونسته باشم كمك كنم

محمدامین شریفی
پنج شنبه 26 اردیبهشت 1387, 09:00 صبح
از اونجایی که من c# , vb را به یک اندازه بلدم فکر کنم 80 % کد هاش یکی است اگه کد ado or sql که همونه ولی اگه کد vb داری بده من واسه دوستمون c# کنم.به نظر من راهنمایی قبلی من خوب بود دیتا ست درست کن

saied_genius
یک شنبه 29 دی 1387, 17:18 عصر
منو ببخشيد اگه يكمي دير دارم جواب مي دهم !!!

براي update شدن بانك sql در يك لحظه به هيچ وجه شما نمي توانيد آنرا توسط چند كاربر update نماييد.

فكر مي كنم بهترين راه اين است كه از طريق برنامه نويسي اگر ديتابيس قفل بود (چون sql به طور اتوماتيك قفل مي كند) صبر كند و دوباره بعد از چند لحظه امتحان كند (چون update شدن يه لحظه كه بيشتر نيست ، آن هم با sqlserver).

اميدوارم كه كمكي كرده باشم.

سوالي بود در خدمتم.

بازهم به خاطر دير جواب دادن معذرت مي خواهم.

موفق باشيد.